git и изменения
Всем привет, пока читаю про сею систему контроля версий возникли вопросы.
1. Допустим я сделал 3 коммита в мастере 2. Потом создал ветку SECOND , в ней коммит и потом смерджил обе ветки, c закрытием последней (SECOND). 3. потом я добавил новый коммит в мастере Но увидел что в ветке SECOND в том единственном коммите я мог бы кое что изменить, вопрос в том , если я перейду на нее и изменю, отобразится это в текуйщей HEAD коммите изменения прошлого? Нужно ли вообще закрывать ветки? или лучше пусть будут и легче добавить новый коммит и снова сделать слияние веток? |
Обычно после мержа в мастер ветки удаляются, если считается, что работа в этой ветке завершена.
Если ветка не удалена, то можно в нее просто подмержить мастер и новые правки сделать отдельным коммитом. |
В гите для слияний есть 2 операции: merge (собственно слияние) и rebase (проецирование коммитов ветки на другую), а ещё есть chery-pick, который позволяет коммит или несколько коммитов зафигачить в другую ветку.
Цитата:
У меня сценарий работы обычно такой: Допустим делают апдейт либы до версии 1.1. 1) Создаю бранч v1.1 2) Когда закончил работу, то мержу его с мастером 3) Убиваю бранч 4) Создаю тег v1.1 |
теги для удобных checkout - ов, а вот если я хочу изменить этот старый коммит, он будет отображаться в HEAD - е? то есть добавится во все последующие коммиты? или его не будет в последней версии?
|
Цитата:
|
Если никуда не пушил, то пиши изменения в отдельный коммит, а потом делай git rebase -i <коммит, который надо исправить>. Появится список коммитов в редакторе, ты можешь тасовать его как хочешь, в т.ч. взять коммит исправление, поставить его после того коммита, который хочешь исправить и поменять директиву с pick на fixup. Тогда правки из нового коммита сольются с предыдущим.
Правда, если я не ошибаюсь, это изменить хэши всех последующих коммитов, а также может привести к конфликтам в ходе ребейза, но из легко разрешить при помощи git mergetool. Еще есть альтернативный способ. Как я понимаю, по сути то же, но более автоматизированное: http://fle.github.io/git-tip-keep-yo...utosquash.html |
Цитата:
|
Цитата:
|
Часовой пояс GMT +3, время: 13:05. |