Як запустити журнал git, щоб побачити зміни лише для певної гілки?


395

У мене є місцева гілка, яка відстежує віддалену / головну гілку. Після запуску git-pullі git-logв журналі буде показано всі комісії у віддаленій гілці відстеження, а також у поточній гілці. Однак, оскільки у віддаленій гілці було внесено стільки змін, мені потрібно побачити лише зобов'язання, внесені до поточної місцевої гілки.

Що було б командою Git використовувати лише для показу фільмів для певної гілки?

Примітки:

Інформація про конфігурацію:

[branch "my-branch"]
  remote = origin
  merge = refs/heads/master

Відповіді:


526

Якщо припустити, що ваша філія була створена поза межами master, тоді, перебуваючи у філії (тобто у вас філія перевірена):

git cherry -v master

або

git log master..

Якщо ви не в гілці, тоді ви можете додати ім'я гілки до команди "git log", наприклад:

git log master..branchname

Якщо ваша філія була звільнена origin/master, скажіть origin/masterзамість цього master.


100
Ідеально! git log --no-merges master..було саме те, що мені було потрібно.
Шосе життя

3
@HighwayofLife: --no-mergesможе здатися, що він показує лише товари з певної гілки, але це дійсно лише показ
комітетів,

5
Як щодо способу зробити це, який не вимагає від мене введення / знання батьківської гілки? :)
ELLIOTTCABLE

1
Щоб зрозуміти швидкість зміни, я використав наступний заклик :), який створює формат журналу одно рядків із вказаним ім'ям автора, а потім відносний вік комісії:git log --no-merges --pretty='%C(yellow)%h%d %Creset%an %Cgreen%ar:%Creset %s' --graph master..
Ной Суссман

2
не слід читати? git log master .. <Ваша філія> --oneline --no-merges
Alex Nolasco

104

Використання:

git log --graph --abbrev-commit --decorate  --first-parent <branch_name>

Це лише для цільової гілки (звичайно --graph, --abbrev-commit --decorate - більш полірувальні).

Ключовим варіантом є - firstter parent: "Дотримуйтесь лише першого батьківського зобов’язання, побачивши комісію злиття" ( https://git-scm.com/docs/git-log )

Це запобігає відображенню вилок фіксації.


25
--first-parent <branch_name>є варіант. працює!
парасити

3
Де назва-гілка - це, гілка, історію якої я лише хочу бачити? На гілці з лише 3 змінами це показує мені сотні.
Ед Рендалл

1
--first-parent <branch_name>теж працював на мене! Я закінчив псевдонім до git log --first-parent $current_branch_name --no-merges. У відповідь на @EdRandall, він відображатиме коміти на гілці + ті, звідки вона була розгалужена. Наприклад:
Рейчел

2
На жаль, я подав найближчим часом, ось приклад: Ви маєте виконувати A і B на master. Ви відгалужуєтесь new_featureвід господаря. Ви додаєте до нього комірки C і D. Тоді ви додаєте E і F до майстра. Тоді ви об'єднуєте майстра в new_feature. Використовуючи git logна new_feature, ви побачите "майстер злиття", F, E, D, C, A, B. Використання git log --first-parent new_feature --no-merges, ви побачите , D, C, A, B.
Речел

24

Якщо ви хочете лише ті комітети, які ви виконали в певній галузі, скористайтеся командою нижче.

git log branch_name --author='Dyaniyal'

13

Проблема, яку я мав, яка, на мою думку, схожа на цю, полягає в тому, що майстер був занадто далеко попереду мого відділення, щоб історія була корисною. (Навігація до точки відгалуження займе занадто довго.)

Після деяких спроб і помилок, це дало мені приблизно те, що я хотів:

git log --graph --decorate --oneline --all ^master^!

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.