Что делает git log -all?

Почему не git log просто записывать все последние коммиты?

И что это значит?

--all
 Pretend as if all the refs in refs/ are listed on the command line as <commit>.
</commit>

Я предполагаю, что когда-то переведенный на простой английский, это означает показать все последние коммиты.

Может кто-то уточнить.

3 ответа

Нет, это не значит, что он показывает все последние коммиты. Он показывает все фиксации в истории веток, тегов и других ссылок, но в нем не отображаются коммиты, недоступные из любого ref. Типичным примером коммита, недоступным из любого ref, является то, что вы только что запустили git commit --amend: предыдущий фиксатор все еще существует локально, но он больше не доступен и не будет отображаться в git log --all. Но git reflog подтвердит, что он действительно существует.

Что касается того, почему --all не является значением по умолчанию: вы обычно этого не захотите. Например, если вы находитесь на главном сервере, и вы запускаете git log, вас обычно не интересует история каких-либо ветвей признаков, вы обычно хотите увидеть историю мастера.

Если вы обычно хотите поведение --all, я рекомендую создать псевдоним.


Согласно сообщению здесь git - all missing commit:

log - all только для перечисления коммитов, на которые ссылаются ссылки refs/(например, теги, главы,...)

На той же странице также написано:

Опция -all не сообщает журналу git для отображения всех коммитов. Он запрашивает журналы всех ссылок, в основном ваши ветки и теги.


Потому что вы хотите увидеть историю всех ветвей /etc. не так часто встречается при работе с желанием увидеть историю чего-то определенного, как правило, текущей ветки.

Я предполагаю, что когда-то переведенный на простой английский, это означает показать все последние коммиты.

Нет. refs/содержит такие вещи, как ветки и теги. Если вы хотите просмотреть историю конкретной ветки или определенный набор ветвей, перечислите их в своей команде git log. Если вы хотите просмотреть историю всех ветвей/тэгов/и т.д., Вы можете использовать ярлык --all.

Git log не просто показывает "последние коммиты": он показывает все коммиты, которые соответствуют заданным критериям, из которых несколько измерений. Например, какие ветки являются фиксацией, является фиксацией в определенном диапазоне и т.д.

licensed under cc by-sa 3.0 with attribution.