Покажите только история одной ветки в журнале Git

StackOverflow https://stackoverflow.com/questions/4629358

Вопрос

Я использую Git для моего проекта и пытаясь следовать наилучшей практикой:

  1. Я работаю на Тема филиала
  2. Когда готов, я объединяю Тема филиала в мой дев ветвь использует git merge --squash. Отказ Это держит мой дев Филиал чистый.
  3. Всякий раз, когда то дев Филиал стабилен, а команда решает пришло время для выпуска, мы объединяем дев ветвь в то владелец ветвь, без Используя Squash, и тег, который совершается как выпуск версии.

Это должно сохранить нашу историю и использовать GITK, мы видим, куда приходят все коммиты. Тем не менее, я хочу видеть Только коммиты применяются к владелец ветвь. Я пытался:

git log master
git show-branch

Ни один из этих шоу только что История владелец ветвь. Есть ли способ легко сделать это?

Это было полезно?

Решение

Если я правильно понимаю вас, вы хотите увидеть слияние обратно в мастер, но не историю этих слияний. Я полагаю, что:

git log --merges

даст вам то, что вы хотите.

Обновление: добавление --first-parent должен исправить это из звуков этого.

git log --merges --first-parent

--first-parent.

Follow only the first parent commit upon seeing a merge commit.

Этот вариант может дать лучший обзор при просмотре эволюции определенного ветвления темы, поскольку сливаются в тему ветвь, как правило, касаются регулировки для регулировки для обновления вверх по потоку от времени, и эта опция позволяет игнорировать индивидуальные коммиты, приведенные в Ваша история такого слияния.

Другие советы

К сожалению, Git не храняет информацию о филиале для совершения, а коммиты не принадлежат к ветви. Ветви в Git являются просто «движущимисями метками» в течение коммиентов, а не последовательность коммиентов, как можно ожидать.

Таким образом, вы не можете показать коммиты, которые принадлежат ветви, так как в Git нет такой концепции.

Поскольку Git не хранят информацию о том, какую ветвь зарождается, из которой другие, нет автоматического способа угадать, какую ветвь вы сможете показать.

В этой связи --first-parent Не будет в конечном итоге поможет, особенно так, как это легко иметь более одного мастера. Рассмотреть возможность:

wc1$ git clone git://shared.com/repo
wc1$ (hack code, git commit)
wc2$ git clone git://shared.com/repo
wc2$ (hack code, git commit, git push somewhere)
wc1$ git fetch origin; git merge origin/master; git push somewhere master;

(Не стесняйтесь принимать случайные проекты и сделайте это упражнение.) График его. Таким образом, вы не можете осмысленно графом «всего одну ветку», даже если коммиты были помечены именем ветви, на которой они были сделаны (потому что оба являются магистрами).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top