Получение количества совершенных коммитов в git - PullRequest
0 голосов
/ 31 мая 2011

Допустим, я создаю ветку с именем foo из master и, работая над ней, я выполняю много локальных коммитов. Теперь я закончил с веткой и хочу объединить ее обратно с мастером, хотя я не хочу объединять все коммиты в один коммит при слиянии назад, которое, как я знаю, может быть сделано:

#from master branch
git merge --squash foo

Я все еще хочу иметь возможность раздавить некоторые коммиты, чтобы только важные из них были перенесены в исходный репозиторий. Теперь, если я знаю количество коммитов, которые я сделал с момента создания ветки, это легко. Все, что мне нужно сделать, это:

#assuming I did 20 commits
#while in the foo branch
git rebase -i HEAD~20

И тогда я могу раздавить коммиты, которые я хочу. Проблема в том, что я обычно не отслеживаю количество раз, когда я фиксирую ветку, поэтому, если я не знаю это число (а в большинстве случаев я не знаю), я не знаю, что делать. Как правило, мне нужно будет только раздавить, когда ветвь будет готова, и я готов слиться обратно с мастером, поэтому мне было интересно, есть ли способ получить количество коммитов с момента создания ветки?

Ответы [ 2 ]

2 голосов
/ 31 мая 2011

Я бы просто

git rebase -i origin/master

или что бы вы ни разветвлялись, итоговая история будет отображаться. Я начал с более поздней версии, и обратное слияние, вероятно, будет ускоренным (с ним легче работать, особенно если вы все равно переписываете реальную историю в логические наборы изменений) , Но если вы хотите сохранить ту же базовую точку, вы можете сделать

git rebase -i $(git merge-base HEAD origin/master)

(или от того, с чего вы снова ответили).

0 голосов
/ 31 мая 2011

Как сказал Ян git rebase -i master - это, вероятно, все, что вам нужно.Отсюда вы можете раздавить выбранные коммиты, изменить их порядок, изменить сообщения о коммитах или просто игнорировать отдельные коммиты

Есть удобная GitCast screencast , которая показывает некоторые из этих действий.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...