После того, как я выполнил слияние с моей веткой мастера из рабочей ветви с git, мне иногда нужно найти, чтобы найти последнюю фиксацию на master до того, как произошло слияние. Как мне это сделать?Как найти последнюю фиксацию git перед слиянием
ответ
Быстрый способ сделать это, чтобы ввести
git log --pretty=format:'%h : %s' --graph
затем просто следовать вниз граф на правой стороне, пока не найдете точку слияния. Вы также можете сделать
git log --pretty=format:'%h : %s' --graph > temp.txt
который помещает вывод в файл, temp.txt
, что, который вы можете открыть в редакторе и использовать поисковый механизм для поиска текста, как слияния.
Этот подход полезен, чтобы ответить на многие другие вопросы о происхождении вашего последнего коммита так поставили
alias git_graph="git log --pretty=format:'%h : %s' --graph"
.bash_profile
в моем файле, так что я могу просто использовать `` `git_log``, чтобы увидеть эту информацию ,
Почему не 'git log -1'? – mallaudin
@mallaudin: Я считаю, что Obromios ссылается на ситуацию, когда слияние несколько или даже много коммитов * позади * кончика 'master'.То есть, 'git log -1' будет показывать только одно нечетное коммит. – torek
Да. Это правда. Я думаю, что сейчас. – mallaudin
git log -1
Также см git log --help
или https://git-scm.com/docs/git-log
Быстрый способ определить, совершить после слияния произошедшей является использование reflog.
Предполагая, что последняя операция СВЕРШИВШИМСЯ произошло слияние, то:
git log [email protected]{1} -1
[email protected]{1}
относится к предыдущему ГОЛОВЫ до последней операции, так что вы можете обратиться его с помощью журнала и reflog.
git log
покажет вам последовательность коммитов в текущей ветке, поэтому после слияния она всегда будет слиянием и прямо перед тем, как она будет совершена из объединенной ветки. git reflog
показывает последовательность операций в вашем репозитории (например, merge, rebase). Как поясняется в документах:
Справочные журналы или «журнальные листы», запись, когда в локальном репозитории были обновлены советы ветвей и другие ссылки. Reflogs полезны в различных командах Git, чтобы указать старое значение ссылки.
Когда я попробовал это, он дал последнему фиксацию на ветке, которая была объединена, а не последняя фиксация на хозяине до того, как ветка была объединена. – Obromios
@Obromios, что показывает git reflog --oneline? какие операции в списке? Вы должны выбрать следующее перед слиянием (то есть если HEAD @ {0} - слияние, то HEAD @ {1}), я думаю, что слияние не было последней операцией, – 2oppin
Если вы уже сливали branch
в master
, вот один из способов найти слияния совершить:
# With the ancestry-path option, 'git rev-list branch..master' (or git log)
# will only list commits which are parents of 'master'
# *and* children of 'branch'
#
# If 'branch' was merged into 'master', the last commit in this list
# is the merge commit :
$ git rev-list --ancestry-path branch..master | tail -1
состояние master
перед слиянием это совершить первый родитель:
$ h=`git rev-list --ancestry-path branch..master | tail -1`
$ git log $h^
Я проверил это, и он работает, спасибо. Однако я буду принимать свой ответ, stackoverflow.com/a/41628915/1299362, поскольку он более полезен. Я мог видеть, как я использую ваш ответ, если слияние было длинным, длинным. – Obromios
- 1. Git: зафиксировать перед слиянием?
- 2. Git - нажмите только последнюю фиксацию
- 3. Как скопировать последнюю фиксацию как новую фиксацию в Git?
- 4. Как удалить не последнюю фиксацию в Git?
- 5. Как настроить yocto использовать последнюю git-фиксацию?
- 6. Прочитать последнюю фиксацию номера git и commit
- 7. Как найти фиксацию в Git?
- 8. git: найти наибольшую фиксацию
- 9. Получить последнюю последнюю фиксацию до вытягивания
- 10. git squash и сохранить последнюю фиксацию точно
- 11. Git узнать последнюю фиксацию, которую я нажал
- 12. git squash на месте перед слиянием
- 13. Просмотрите результат git-merge перед фактическим слиянием
- 14. Как найти последнюю связанную фиксацию на основе хэша blob/tree?
- 15. git: какая удаленная ветка git имела последнюю фиксацию?
- 16. Git - как найти первую фиксацию конкретной отрасли
- 17. Как найти последнюю фиксацию на базовой ветке до слияния (с другой ветвью)?
- 18. Как удалить последнюю фиксацию из моего репо?
- 19. как получить последнюю фиксацию, где в мастер
- 20. Как зарегистрировать последнюю Git-фиксацию при запуске приложения Rails?
- 21. Как восстановить последнюю фиксацию после жесткого сброса git?
- 22. Отменить последнюю фиксацию в TFS
- 23. Как вытащить последнюю фиксацию PR?
- 24. git: Как перенести изменения в новый файл перед слиянием ветки?
- 25. Как проверить реальный git diff перед слиянием с удаленной веткой?
- 26. Как запустить локальную проверку сонара перед слиянием в репозиторий GIT?
- 27. Grit commit, по-видимому, отменяет последнюю фиксацию в Git repo?
- 28. Как перенести фиксацию через фиксацию слияния?
- 29. Git rebase: найти «следующую» фиксацию для переустановки?
- 30. git pull переместит локальную ветвь на последнюю фиксацию?
Вы можете попробовать 'git log -1', он даст информацию о последнем фиксации выбранной ветви. Аналогично, 'git log -2' будет содержать информацию о последних двух коммитов. – Abhi
Также попробуйте использовать gitk для визуализации структуры и проверки любых командных скриптов, на случай, если они не получат правильную базу слияния (fork-point). –