2013-03-21 4 views
8

Я хочу узнать последнее, что я нажал, а не последнее, что я совершил, но нажал.Git узнать последнюю фиксацию, которую я нажал

Есть ли команда git для этого?

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

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

ответ

24

Если вы имеете в виду последний коммишь ты нажал на master ветви, то предполагается, что ваш пульт дистанционного управления является origin:

git rev-parse origin/master 

Это покажет вам коммит идентификатора кончике master ветви origin происхождения, , поскольку в настоящее время известно ваше местное хранилище. Это может означать, что фиксация является чьей-либо фиксацией, если кто-то еще нажал на фиксации после того, как вы это сделали, и с fetch вы создали эту ветвь.

git show -p origin/master 

Эта команда даст вам информацию о фиксации, включая идентификатор фиксации, автор, журнал сообщение, и дифф к родителю фиксации (s).


Один из моих любимых Git команды для выполнения именно такой проверки:

git log --pretty=oneline --abbrev-commit --graph --decorate --all 

Это будет отображать хороший ASCII-арт график истории совершала, и каждый фиксация покажет любые реф, что нацелены на него. Таким образом, вы можете одним взглядом увидеть ветви и слияния в истории и легко увидеть, где origin/master относится к вашему собственному master.

+0

wow thanks cdhowie, что последняя команда потрясающая, ее действительно полезно! я, вероятно, следует спросить это в отдельный вопрос, но то, что считается лучше -git перебазироваться -i -git сливаться --squash Что я хочу сделать, это объединить мой Dev ветвь с мастером, но у меня 100 + компилирует сжатое слово 4. Не 1, поскольку в его истории, вероятно, есть 4 ключевых момента. – chrispepper1989

+2

Если вы подтолкнули свою ветвь dev, то раздавите ее, это плохая идея, так как другие будут свободны от ветвления от вашей работы. Если это общедоступно, не меняйте его. Если он не является общедоступным, тогда 'git rebase -i' позволит вам выбрать, какие четкие фиксации вы хотите сохранить в истории и которые вы хотите сквоить в них. 'git merge --squash' даст вам возможность создать одно коммит, так что в конечном итоге это зависит от того, сколько объектов фиксации вы хотите. – cdhowie

Смежные вопросы