Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.9.170] |
|
Страницы: (9) 1 2 [3] 4 5 ... 8 9 все ( Перейти к последнему сообщению ) |
Сообщ.
#31
,
|
|
|
git merge <другая ветка>
Мержит "другая ветка" в текущую. |
Сообщ.
#32
,
|
|
|
Не согласен TFS - вполне себе шустро работает. Не знаю такого И как мне этими командами сделать то, что я нарисовал в посте Как работают с git'ом? (сообщение #3707209)? Добавлено Цитата negram @ git merge <другая ветка> Мержит "другая ветка" в текущую. Ну вот у меня есть мастер, с котого я неделю назад ответвил бранч. Иду в папку с бранчем, говорю "merge" в окошке выбираю "from master" клацаю "ОК" .... "you are up to date" и нихрена не мержится и не переносится из мастера. бранч остается без изменений. |
Сообщ.
#33
,
|
|
|
Цитата OpenGL @ Я сижу на битбакете, он немного проигрывает гитхабу в функциональности, зато можно бесплатно пять приватных реп сделать, на гитхабе, ЕМНИП, бесплатно, только открытые репы. Вот мне тоже так кажется - гитхаб весьма удобен (по-моему самый удобный из альтернатив), и поддерживает только гит. |
Сообщ.
#34
,
|
|
|
Цитата Fester @ А в мастере есть изменения? я так понял, мастер в твоей схеме -- это то, что на сервере? Тогда:Иду в папку с бранчем, говорю "merge" в окошке выбираю "from master" клацаю "ОК" .... "you are up to date" и нихрена не мержится и не переносится из мастера. бранч остается без изменений. Переключаешься на мастер, там `git pull' Возвращаешься в свою ветку, там `git merge master' Скрытый текст можно сразу git merge origin/master -- тогда изменения подтянуться из удалённого мастера, но путь это будет потом |
Сообщ.
#35
,
|
|
|
Скрытый текст Цитата negram @ можно сразу git merge origin/master -- тогда изменения подтянуться из удалённого мастера, но путь это будет потом Ты про fetch забыл. Изменения с сервера то подтянуть надо. |
Сообщ.
#36
,
|
|
|
Цитата Flex Ferrum @ Скрытый текст Цитата negram @ можно сразу git merge origin/master -- тогда изменения подтянуться из удалённого мастера, но путь это будет потом Ты про fetch забыл. Изменения с сервера то подтянуть надо. Скрытый текст чорт, да просто я перед каждым общением с удалённой репой `git pull' делаю |
Сообщ.
#37
,
|
|
|
Цитата negram @ А в мастере есть изменения? да Цитата negram @ я так понял, мастер в твоей схеме -- это то, что на сервере? на сервере там все, в том числе и бранч мастер - это то, куда коммитят все. а в бранч коммичу только я. и то и другое пуллом отправляю на сервер и оно там каждую ночь билдится. Цитата negram @ Переключаешься на мастер, там `git pull' Возвращаешься в свою ветку, там `git merge master' Погоди Не так быстро, я записываю 1) захожу в папку с бранчем 2) switch -> master 3) pull 3.5) тут будут конфликты 4) switch -> branch 5) merge master 6) commit 7) push я все правильно понял? |
Сообщ.
#38
,
|
|
|
Цитата Fester @ я все правильно понял? Да. Только пункта 3.5 не будет - если ты в свой (локальный) мастер ничего не коммитил. А ты, наверняка, не коммитил. Но будет пункт "5.5 тут будут конфликты". Добавлено И п. 6 не будет. merge сразу локальный коммит делает. |
Сообщ.
#39
,
|
|
|
Ок, пойду эксперементировать
Если что, то знайте, что меня убили коллеги |
Сообщ.
#40
,
|
|
|
Правда, в результате всего этого действа у тебя будет так называет "Merge commit", в котором будет указано, с какой ветки ты мержился и какие конфликты были. Некоторым владельцам репозиториев такие коммиты не нравятся. Поэтому вместо merge и используется rebase.
|
Сообщ.
#41
,
|
|
|
Цитата Flex Ferrum @ Вот Некоторым владельцам репозиториев такие коммиты не нравятся. |
Сообщ.
#42
,
|
|
|
negram, в этом есть определённая логика. rebase ты делаешь тогда, когда забираешь чужие коммиты к себе в ветку - ребейзишься на master, или на origin/master, или ещё куда (типа git pull --rebase). При этом всё делается аккуратно - все твои коммиты, сделанные с последней точки ветвления, пытаются накатиться поверх нового содержимого. А вот когда ты хочешь свою ветку затащить в master - ты уже делаешь merge. И вот чтобы не было merge-коммита ты сначала делаешь rebase своей ветке, а потом спокойно её мёржишь.
|
Сообщ.
#43
,
|
|
|
Говорят гитхаб научился делать ребейз автоматически прямо при мердже пулл-реквеста.
|
Сообщ.
#44
,
|
|
|
Цитата Flex Ferrum @ Вот этого я понимать отказываюсь. Во-первых, этот коммит не враг, а друг: я всегда знаю какой коммит нужно откатить, если намержил чего-то не того, и из твоего поста видна одна лишь эстетическая составляющая "чтобы не было мерж-коммита" и логическая компонента выглядит притянутой за уши. Во-вторых, проглядывая историю ты всегда видишь этот эвент. Пусть это не всегда нужно, но лишней информацией это не будет. И вот чтобы не было merge-коммита |
Сообщ.
#45
,
|
|
|
Я обычно перед тем как "смерджить все свое локальное курево в мастер" делаю патч.
Возможно я это уже где то писал. Т.е. делаю дифф в бинарном виде, применяю его на чистой ветке и все. Имеем супер патч, в один коммит. Не надо никаких "мердж коммитов" и т.п. смуты. делаем так: git checkout master git pull --rebase git checkout -b CLEAN_BRANCH_NAME git diff --binary CLEAN_BRUNCH_NAME...DEV_BRANCH_NAME_WITH_100500_INTERMEDIA_COMITS > my.patch git apply -3 my.patch git commit -m "my super feature" git push origin HEAD И все, с этого бранча уже можно поднимать красивый пулреквест. А как у меня там мысль ходила туда сюда в сотне коммитах - этого потомкам знать не надо, пусть я буду в их глазах идеален и пишу сразу как положено Добавлено Вообще не представляю себе теперь жизни в какой то другой системе контроля версий. Правда, так и не осилил никакой "красивой оболочки" для git, все в консольке. Параллельно, правда, в Perforce живу, ну это небо и земля - особенно что касается скорости. |