[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]

No.28005 Reply
File: git.jpg
Jpg, 80.27 KB, 750×600 - Click the image to expand
edit Find source with google Find source with iqdb
git.jpg
Собственно вопрос про гит например.

Есть некоторая удаленная репа, до которой имеем ssh-доступ. Когда я пушаю в нее с локальной, то запускается скрипт .git/hooks/post-receive, в котором там что-нибудь делается с проектом (чистится кэш, компилируются шаблоны, запускаются миграции и прочая херота).
#!/bin/sh
GIT_WORK_TREE=.. git checkout -f
echo "Something pushed to server. Yay!"
../scripts/update.sh
# например
Возможно ли запускать на удаленном сервере этот мой update.sh не один раз на пуш, а на каждый коммит (даже на те коммиты, которые во вмерженых в основную ветку бранчах)?
>> No.28027 Reply
File: 0b21bc95cdf6bab342be7eb16f3cc118.jpg
Jpg, 135.32 KB, 1280×800 - Click the image to expand
edit Find source with google Find source with iqdb
0b21bc95cdf6bab342be7eb16f3cc118.jpg
> Возможно ли запускать на удаленном сервере этот мой update.sh не один раз на пуш, а на каждый коммит
Навскидку - нет, я бы накостылил в post-receive hook перебор всех коммитов ручками. pre-commit выполняется не на сервере, а в локальной копии, поэтому тебе не покатит.
> Когда я пушаю в нее с локальной, то запускается скрипт .git/hooks/post-receive, в котором там что-нибудь делается с проектом (чистится кэш, компилируются шаблоны, запускаются миграции и прочая херота)
У самого такой же сетап, в своей основной рабочей копии у меня все такие таски в pre-commit (включая юнит-тесты, которые не дают закоммитить, если фейлятся :3) , а на сервере на post-update висят серверные таски (а-ля git update-server-info).
>> No.28039 Reply
>>28027
Тебе советую использовать хук update.
>> No.28042 Reply
>>28027
У меня пока нулевое покрытие юнит-тестами (т.е. их тупо нет), поэтому pre-commit как-то и не нужен. Тогда собственно вопрос: как эти коммиты ручками по очереди перебрать? Типа заделать файл lastpushedcommit например и от него до свежезапушенного шагать?
>> No.28043 Reply
>>28042
Нет. В update, например, передается имя ветки, начальная ревизия и конечная. Зная их, можно получить все ревизии между ними, только я забыл, как это делается.
>> No.29980 Reply
File: 4604089957_987d25f8f8_z.jpg
Jpg, 272.99 KB, 640×451 - Click the image to expand
edit Find source with google Find source with iqdb
4604089957_987d25f8f8_z.jpg
Суп котаны, тут у моих коллег случилась в гит-репе такая шляпа:
жил да был мастер с коммитами A-B, от него отпочковалась фича с коммитами A-B-C-D например, тут внезапно в мастер накоммитили и он стал A-B-E, а при попытке ребейзнуть фичу по мастеры, гит матюгаясь нихера полезного не делает, только переключается "нивкакую" ветку и гит-статус подозрительно пуст. Мы пару часов пролюбились с этой херней и тупо сделали ветку заново (разкоммитили, застэшили, сделали ветку от свежего мастера, из стэша попнули). Вот еще интересная особенность была: когда у неотребэйженой фичи смотришь git hist, то ссылки мастер на коммите B не видать.
Как по-человечески решается такое?
>> No.30017 Reply
>>29980
Нахера вы ребейз-то делали?
>> No.30021 Reply
>>29980
> мастер с коммитами A-B, от него отпочковалась фича с коммитами A-B-C-D например, тут внезапно в мастер накоммитили и он стал A-B-E, а при попытке ребейзнуть фичу по мастеры, гит матюгаясь нихера полезного не делает, только переключается "нивкакую" ветку и гит-статус подозрительно пуст. Мы пару часов пролюбились с этой херней и тупо сделали ветку заново (разкоммитили, застэшили, сделали ветку от свежего мастера, из стэша попнули)
Звчит, как ролевая.
>> No.30026 Reply
>>30017
Политика партии, чтоб была линейная история коммитов. Т.е. история вида
B--E--F 
 \   /
  C-D
строго неприветствуется.
>> No.30028 Reply
>>29980
борешься с конфликтом, rebase --continue. Но мне почему-то предлагается фиксить каждый коммит после ребейса, возможно нужно включить rerere, поэтому я делаю проще.
Так как коммиты все равно потом сквошить после ребейса, я делаю git diff между D и E и патчу D с помощью patch -p1 < diff.name. Или git merge//git diff/ patch.
>> No.30029 Reply
>>30028
Спасибки, rerere попробуем, а еще rebase --skip попробуем. Еще я тут слегка погуглил, похоже вот на такую ситуацию http://stackoverflow.com/questions/4033009/git-rebase-conflicts-keep-b[...]gress
>> No.30030 Reply
File: cat_thread.jpg
Jpg, 685.33 KB, 1404×936 - Click the image to expand
edit Find source with google Find source with iqdb
cat_thread.jpg
>>30029
Пикча отвалилась
>> No.30520 Reply
Подскажите, какая система удобнее всего для мелких проектиков на пэхопэ. И чтоб с PHPStorm работало.
>> No.30521 Reply
>>30520
Размер и язык не имеют значения. Mercurial или git, других вариантов все равно не бывает.
>> No.30530 Reply
>>30520
Mercurial + GUI к ней TortoiseHG бери.
>> No.30542 Reply
>>30530
В жёпу гуи, только концоль, только хардкор!
>> No.30558 Reply
Есть на Андроид какой-нибудь софт для гита или ртути, чтоб можно было клонировать, коммитить, пушать, мержить и проч.?
>> No.30564 Reply
File: oglzLYGSF6.gif
Gif, 317.78 KB, 250×188 - Click the image to expand
edit Find source with google Find source with iqdb
oglzLYGSF6.gif
>> No.30565 Reply
>>30558
Есть. Terminal IDE. Или ставь DebianKit, а из-под него уже всё, что тебе нужно.
>>30564
Кстати, да.
>> No.31130 Reply
File: 4f1f3cfc6308b8434702e8ec58d521bf.jpg
Jpg, 260.69 KB, 596×652 - Click the image to expand
edit Find source with google Find source with iqdb
4f1f3cfc6308b8434702e8ec58d521bf.jpg
Анон, а анон, а подскажи какую-нибудь книгу или документ вроде "Git для самых маленьких", разжёвывающую терминологию гита и объясняющую основные принципы работы с репозиторием! С общей теорией систем версионирования я знаком, а также поверхностно знаком с CVS и SVN. Хочу запилить принципиально новый клиент-серверный проект, создал репозиторий на гитхабе и вроде бы связал его с локальной директорией, а теперь хочу вникнуть в матчасть, чтобы потом не было мучительно больно при правке проблем, героически созданных при первых коммитах.
>> No.31131 Reply
>>31130
Хотя нет, отбой - как оказалось, по гиту есть необычайно внятная оффициальная(TM) книга, которая вполне подойдёт и для начинающих читателей: http://git-scm.com/book
>> No.36695 Reply
File: gitflow.png
Png, 86.16 KB, 450×250 - Click the image to expand
edit Find source with google Find source with iqdb
gitflow.png
Котаны, стоит ли использовать git-flow или можно простым git'ом обходиться?
>> No.36696 Reply
>>31130
Для начинающих лучше это: http://githowto.com/
>> No.36793 Reply
File: wenn20326693-m-112211.jpg
Jpg, 95.53 KB, 438×306 - Click the image to expand
edit Find source with google Find source with iqdb
wenn20326693-m-112211.jpg
>>36695
"Котаны, стоит ли использовать бензопилу или можно простой пилой обходиться?"
>> No.36796 Reply
>>36793
Зависит от толщины дерева. Ты какой толщины дерево пилишь? Такой ответ обычно и ждут.
>> No.36808 Reply
>>36796
Ты хочешь сказать, что >>36695 не догадывается, от чего зависит применимость git-flow? Не верю. Скорее, он просто ленится поставить вопрос правильно, потому что внутри знает, что этот вопрос уже самою правильною постановкой разрешится, а тогда не будет повода написать на Доброчан, перетереть с пацанами за мёржи-ребейзики, за жизнь коммитерскую. Вот и Путин смотрит на него с отеческой укоризной. Ничего страшного; и мне нередко приходится бороть в себе это искушение.

А как удачно аналогия с пилой-то заиграла, а!
>> No.36809 Reply
>>36808
> Ты хочешь сказать, что >>36695 не догадывается, от чего зависит применимость git-flow?
Сам я даже не знаю, что это.
>> No.36838 Reply
>>28005
Господа объясните ньюфагу как переехать с svn на git?
читал http://habrahabr.ru/post/144626/ и http://qobject.blogspot.ru/2012/11/svn-git.html
Но слабо вериться что все так просто. Какие подводные камни ждут? Проект с с многолетней историей, коммитов соответственно нереально много.
>> No.36839 Reply
>>36838

Импортировал как-то раз проект с пятью сотнями коммитов и одной веткой. Всё прошло отлично, никаких косяков.
>> No.36840 Reply
>>36839
Там тысячи, текущая ревизия 4774
Мне страшно и волнительно начинать.
Опиши пожалуйста что делал.
>> No.36841 Reply
>>36840

Примерно то же, что здесь написано: http://habrahabr.ru/post/144626/ . Я, на самом деле, особо не заморачивался с чистотой преобразования, поэтому просто запустил git svn clone с минимумом параметров, и результат меня вполне устроил.

Да, кстати, что мешает прямо сейчас начать? Репозиторий же копируется, а не уничтожается.
>> No.36846 Reply
File: 392_300_34270_50_.jpg
Jpg, 36.13 KB, 392×300 - Click the image to expand
edit Find source with google Find source with iqdb
392_300_34270_50_.jpg
>>36838
find . -name ".svn" -exec rm -rf {} \;
git init
git add -A
git commit -m 'initial commit'
>> No.36847 Reply
File: petrosayn_e.jpg
Jpg, 169.01 KB, 500×500 - Click the image to expand
edit Find source with google Find source with iqdb
petrosayn_e.jpg
>> No.37638 Reply
>>36847
Кто нибудь знает как в git переключиться на ревизию?
>> No.37640 Reply
>>37638
git checkout такой-то-хэш-коммита
>> No.37648 Reply
>>37640
это не то, после чекаута теряется знания о коммитах выше и больше нельзя на них переключиться.
>> No.37657 Reply
>>37648
Не теряется 100%. В каком-нибудь gitg глянь, если не веришь.
>> No.37671 Reply
>>37648
> после чекаута теряется знания о коммитах выше и больше нельзя на них переключиться
Ты сделал мой день. Отсыпь немного, а?
>> No.37676 Reply
>>37657
В tortuesGit смотрю, теряется.
>> No.37687 Reply
>>37671
Ну зачем вы так жестоко. Понятно же, что человек хотел:
git checkout -b temp
git reset такой-то-хэш-коммита
>> No.37689 Reply
>>37687
Спасибо добрый человек )).
>> No.37711 Reply
>>37689
> ))
Уходи.
>> No.41427 Reply
А для чего нужно watchers и starts на гитхабе?
Ну стал я вотчером репозитория, и где мне смотреть, что изменилось в нем?
Нет, серьезно.
>> No.41428 Reply
>>41427
> stars
слоуфикс
>> No.41429 Reply
>>41427
На главной странице приходят обновляния.
А стары это просто типа лайки, ну и закладка одновременно.
>> No.47272 Reply
File: who_the_fuck_is_that.JPG
Jpg, 8.89 KB, 210×40 - Click the image to expand
edit Find source with google Find source with iqdb
who_the_fuck_is_that.JPG
ЯННП. Вот я создал на гитхабе репозиторий. Вот я закоммитил в него. И оно мне отображает пикрилейтед. Но я вообще не знаю что это за хуй такой "cincrement", коммитил я с совершенно другим ником. Я удалил репозиторий, и закоммитил снова ("initial commit" - это мое описание). То же самое.
Кто это такой, и схуяли ему приписывается мой коммит?
>> No.47273 Reply
>>47272
У гита есть свой собственный юзернаме и емайл, которые можно настроить вот как-то так https://git-scm.com/book/ru/v1/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-%D0%9F%D0%B5%D1%80%D0%B2%D0%BE%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-Git
Если ты их не настроишь то они будут браться от текущей учотки.
>> No.47274 Reply
>>47273
Но оно даже сделало ссылку на его профиль (пустой). И я точно нигде не мог использовать "cincrement", само это слово не гуглится что указывает на то что оно не дефолтное, а локальный git log выдаёт Author: [юзернейм] <a@b.c>. Где юзернейм - это юзернейм, который я указывал при коммите. Но я использовал для этого всего TortoiseGit.
>> No.47275 Reply
>>47274
Вот по тортосу я хз, в шинду юниксовые консольные утилиты идут через тысячи потных нигерско-вьетнамских жоп, каждая пиздоблядская прога типа того же тортойза, гиткракена или соусртри заводит свой свой гит, в соём недоюникс-окружении. Гугли или спрашивай на их форуме. Я категорически ебал виндую Только линукс, только хардкор!
>> No.47314 Reply
>>47275
При скачивании гита с офсайта для виндовс там есть галочки - установить гуи, установить свою консолечку etc. Все прекрасно работает! Даже атлассиан и прочие гитхабы не настолько удобны, как встроенные тулзы.
А ты просто злобненькая бака, добра тебе!
>> No.47738 Reply
Какая система лучше для Windows в плане чтобы работало и не выёбывалось?
>> No.47739 Reply
>>47738
В смысле?
>> No.47757 Reply
>>47738
Пользуюсь этим: https://desktop.github.com/

Нареканий не имею.
>> No.47760 Reply
>>47757
То есть не этим, что они там сейчас предлагают (какую-то бету), а если промотать ниже, то будет обычная нормальная версия.

Бету не пробовал.
>> No.47770 Reply
>>47739
Нужен локальный репозиторий.
>> No.47771 Reply
>>47770
git init; git add -A; git commit -m 'initial commit'
>> No.47772 Reply
>>47771
Кроме гита систем контроля версий не существует?
>> No.47773 Reply
>>47772
Ну, есть bazaar и darcs еще например.
>> No.47774 Reply
>>47772
Чтоб потом переучиваться на гит, да.
>> No.47775 Reply
>>47773
ClearCase, CVS, Subversion?
>> No.47776 Reply
Почему на гитхабе столько вроде бы бессмысленных форков? Это какое-то автоматическое действие? Зачем рандомно форкать всё подряд, если не планируешь что-то менять? Что это даёт?
>> No.47780 Reply
>>47776
В большинстве из них несколько строк изменений. В чём смысл вопроса? Если мне потребуется поменять одну строчку для себя, то я его форкну.
>> No.47781 Reply
>>47780
Нет, просто форки, безо всяких изменений. Человек просто зачем-то форкает к себе реп и всё.
>> No.47842 Reply
>>47781
Форкаю на работе, чтобы потом дома склонировать и похакать.
>> No.47843 Reply
>>47772
Есть божественная ртуть, но миллионы мух пользуют гит.
>> No.47844 Reply
>>47843
Я пользовался и гитом и ртутью, они плюс-минус одинаковы по функционалу. Божественности в ртути не увидел.
>> No.47845 Reply
>>47844
Говорят, она быстрее. Какой по величине репа была на ртути? Маленькая или большая?
>> No.47847 Reply
>>47845
Небольшая репа на ртути. Около сотни коммитов, емнип. С огромными репами под гиг размером приходилось работать, не сказать что прями пиздос медленно становится.
>> No.47848 Reply
Можно ли сделать так, чтобы git не запоминал логин и пароль на github. Сбрасываю на работе всякие маленькие фрагменты кода на свой гитхаб, не хотелось бы светить там свои данные.
Обычно все наоборот хотят эту фичу. Почитал вот здесь:
https://git-scm.com/docs/gitcredentials
https://git-scm.com/docs/git-credential-store
http://support.beanstalkapp.com/article/856-how-do-i-make-git-remember-my-credentials
Включить просто, да и по умолчанию она включена, а вот как отключить - не понятно.
>> No.47849 Reply
>>47848
Есть два способа склонировать репу: по протоколу https или по git.
В первом случае в файле .git/config в разделе [remote "origin"] будет строка вида url = https://github.com/юзернаме/репонаме и доступ на запись к этой репе будет по логину и паролю, которые будут всегда спрашиваться.
Во втором случае будет url = git@github.com:юзернаме/репонаме.git и для доступа нужно будет залить в настройках гитхаб-акка публичную часть rsa-ключа, пароль спрашиваться не будет.

Так что сделай до этого своего проекта доступ по https, а для всех остальных по git.
>> No.48011 Reply
Кто-нибудь юзал CVSNT? Расскажите о разграничении прав доступа в папке репозитория или киньте ссылкой по администрированию.
>> No.48025 Reply
>>48011
http://circe.univ-fcomte.fr/Docs/CVS/cvs.html — кинул.
> note that users must have write access to the CVSROOT/val-tags file
Если этого не сделать, клиент просто подвиснет.
>> No.48075 Reply
fossil отличнейшая vcs.
>> No.48968 Reply
File: New-Mind-Map.jpg
Jpg, 64.98 KB, 1434×710 - Click the image to expand
edit Find source with google Find source with iqdb
New-Mind-Map.jpg
Здравствуй, медленно/s/.
Использую в проекте alembic для миграций. Само собой решил добавить миграции в проект, но не все.
Хочу чтобы в dev ветке были все миграции базы, со всеми экспериментами и промежуточными вариантами, а в master ветке были только миграции, необходимые для переката с прошлого релиза, а миграции dev ветки туда не попадали.
Как это можно сделать правильнее?

Капча пытается что-то подсказать: момента настала версий сдвинулась
>> No.48969 Reply
>>48968
> добавить миграции в git
fix
>> No.49946 Reply
>>28005
Привет.

Есть проблема следующего характера:

Сливал dev с master. В мастере оказались файлы со строками вида >>>>>>>>> HEAD , затем я удалил всё из мастер-ветки через rm -rf, и попытался сделать слияние вновь, но слияния не происходит. Пишет что уже изменения обновлены. Пока временно вручную скопировал файлы в мастер.

Вопрос: как теперь по нормальному сделать слияние?
>> No.49947 Reply
>>49946
Такие строки обозначают конфликтующие места в файлах. Конфликты разрешаются через команду git mergetool.
mergetool можно настроить по-разному: можно использовать vimdiff или утилиту от intellij idea и т.д.
>> No.49948 Reply
>>49947
Это то понятно. Будь у меня конфликтующие места сейчас я бы разрешил конфликт, но я же удалил все файлы из мастер ветки и поэтому ни разрешить конфликт ни слить не могу. Как слить теперь?
>> No.49949 Reply
>>49948
> Это то понятно.
Если бы было понятно, то ты бы наверное знал, что делать с конфликтами и не удалил бы файлы, ведь с этого всё началось.

> Как слить теперь?
Откатиться к предыдущему состоянию мастер ветки (до косяка со слиянием), а потом осуществить слияние с разрешением конфликтов.
Здесь наверное понадобятся команды "git log" и "git checkout", точно не помню, нагугли как правильно.
>> No.49950 Reply
>>49949
Я пробовал откатываться через reset, успешно сливал ветки, но потом когда делал push, запрос отклонялся, мол в удалённом репо есть более поздние правки, сделайте pull. И если мне не изменяет память, после pull у меня в мастере изчезали файлы, так как их нет на удалённом хранилище. Как мне сделать pull, чтобы у меня ничего не изчезло?
>> No.49951 Reply
>>49950
Ты как будто на ходу придумываешь вопросы. В начале у тебя файлы конфликтуют, потом ты спрашиваешь про удалённые файлы. Это какая-то шутка? Ладно, затролил меня.
>> No.49957 Reply
>>49950
Ну, логично, что он не даёт тебе запушить в ремоут при наличии там других изменений. Единственный вариант, который я вижу - запушить туда с ключом -f (--force), что само по себе не очень, особенно если кто-то пользуется этой веткой параллельно и основывает на этих коммитах свою работу.
>> No.49958 Reply
>>49950
Ну, логично, что он не даёт тебе запушить в ремоут при наличии там других изменений. Единственный вариант, который я вижу - запушить туда с ключом -f, что само по себе не очень, особенно если кто-то пользуется этой веткой параллельно и основывает на этих коммитах свою работу.
>> No.49977 Reply
>>28005
Привет, помогите новичку пожалуйста со следующей проблемой.

Я создаю бекэнд веб-сервиса (скрипты на nodejs), другой кодер создаёт фронтэнд (html-страницы). У каждого своя ветка

Вопрос: как сделать так,чтобы любой один из нас мог сделать пуш в мастер так чтобы наши обе ветки слились в одну в мастере?

Также вопрос: как сделать так, чтобы некоторые файлы и директории в моей ветке пушились в репо, но не пушились в мастер?

Заранее спасибо


Password:

[ /tv/ /rf/ /vg/ /a/ /b/ /u/ /bo/ /fur/ /to/ /dt/ /cp/ /oe/ /bg/ /ve/ /r/ /mad/ /d/ /mu/ /cr/ /di/ /sw/ /hr/ /wh/ /lor/ /s/ /hau/ /slow/ /gf/ /vn/ /w/ /ma/ /azu/ /wn/ ] [ Main | Settings | Bookmarks | Music Player ]