История изменений
Исправление marvin_yorke, (текущая версия) :
возможно я не совсем понимаю, как работает rebase. Т.е. моя ситуация следующая:
git clone <repo>
git checkout -b b1 origin\release1
[changes on b1]
git commit
[more changes on b1]
git commit
git push origin b1 # теперь b1 отправлена на сервер
[good god, another change on b1]
git commit
git checkout -b b2 origin/release1 # новая ветка от того же самого родителя
git rebase b1 # скопировал коммиты с b1 (мне так кажется, по крайней мере)
[on b2] git rebase -i HEAD~3 # squash 3 commits
git push origin b2
Правильно ли я поступил и есть ли способ лучше?
Исходная версия marvin_yorke, :
возможно я не совсем понимаю, как работает rebase. Т.е. моя ситуация следующая:
[code]
git clone <repo>
git checkout -b b1 origin\release1
[changes on b1]
git commit
[more changes on b1]
git commit
git push origin b1 # теперь b1 отправлена на сервер
[good god, another change on b1]
git commit
[/code]
и тут я понимаю, что три коммита мне не нужны, а неплохо было бы их слить в один. Если бы я не запушил ветку, я бы сделал rebase -i, получил один коммит и запушил его. Но я сделал так
[code]
git checkout -b b2 origin/release1 # новая ветка от того же самого родителя
git rebase b1 # скопировал коммиты с b1 (мне так кажется, по крайней мере)
[on b2] git rebase -i HEAD~3 # squash 3 commits
git push origin b2
[/code]
Настораживает то, что согласно логу после первого ребейса коммиты на обеих ветках имели одинаковые хеши. Но после второго ребейса с первой ветки вроде они никуда не делись.
Правильно ли я поступил и есть ли способ лучше?