У меня есть локальная ветка, отслеживающая удаленную / основную ветку. После запуска git-pull
и git-log
, журнал покажет все коммиты в удаленной ветви отслеживания, а также текущую ветку. Однако, поскольку в удаленную ветку было внесено так много изменений, мне нужно увидеть только коммиты, сделанные в текущей локальной ветке.
Какую команду Git можно использовать для отображения коммитов только для определенной ветви?
Ноты:
Информация о конфигурации:
[branch "my-branch"]
remote = origin
merge = refs/heads/master
git
branch
git-branch
git-log
Шоссе Жизни
источник
источник
git log --no-merges master..
было именно то, что мне было нужно.--no-merges
может показаться, что он показывает только коммиты из определенной ветви, но на самом деле он показывает только коммиты, которые не привели к слияниюgit log --no-merges --pretty='%C(yellow)%h%d %Creset%an %Cgreen%ar:%Creset %s' --graph master..
Использование:
Это только для целевой ветви (конечно, --graph, --abbrev-commit --decorate являются более полирующими).
Ключевой вариант
--first-parent
: «Следить только за первым родительским коммитом при просмотре коммит слияния» ( https://git-scm.com/docs/git-log )Это предотвращает отображение вилок фиксации.
источник
--first-parent <branch_name>
это вариант. работает !--first-parent <branch_name>
тоже работал на меня! В итоге я получил псевдонимgit log --first-parent $current_branch_name --no-merges
. В ответ на @EdRandall он покажет коммиты на ветке + те, где он был разветвлен. Например:new_feature
от мастера. Вы добавляете коммиты C и D к нему. Затем вы добавляете E и F к мастеру. Затем вы объедините мастер вnew_feature
. Используяgit log
onnew_feature
, вы увидите «мастера слияния», F, E, D, C, A, B. Используяgit log --first-parent new_feature --no-merges
, вы увидите D, C, A, B.Если вам нужны только те коммиты, которые сделаны вами в определенной ветке, используйте команду ниже.
источник
У меня была проблема, которая, по-моему, схожа с тем, что мастер был слишком далеко впереди моей точки ветвления, чтобы история была полезной. (Переход к точке ветвления займет слишком много времени.)
После некоторых проб и ошибок это дало мне примерно то, что я хотел:
источник
просто беги
git log origin/$BRANCH_NAME
источник