2012-05-14 3 views
2

Я пытаюсь создать отчет истории на основе журнала git. Но я бы хотел пропустить ветки, кроме мастера, даже если они объединены. Например, я создал ветку для работы с функцией X. В этой ветке было много мелких коммитов, и мне не нравятся эти небольшие шаги в отчете. Но когда я объединить эту ветку в master с сообщением «Feature X реализовано», я бы хотел увидеть эту веху в отчете. Спасибо, что помогли git новичкам.Отчет об истории Git

ответ

1

Если я правильно вас понимаю, то, что вы ищете, по сути является списком сличений в мастер.

Если это верно, то я считаю, что это будет работать:

git checkout master 
git log --merges 
+0

Спасибо. Единственная проблема заключается в том, что таким образом он игнорирует коммиты, которые первоначально были у мастера. Но если я изменю стратегию, и каждая веха потребует слияния, тогда она будет работать для меня. – Stan

3

Если вы хотите объединить ветку без слияния в всей истории коммитов для этой отрасли, вы можете использовать команду --squash для merge. Это применит все изменения от этой ветви к вашей рабочей директории без фактического создания каких-либо коммитов; на этом этапе вы можете создать единую фиксацию для всей истории. Так что если у вас есть master ветвь, которая выглядит следующим образом:

commit 69b2303df9884627ade245fff4a3376f39646cbd 
Author: Lars Kellogg-Stedman <[email protected]> 
Date: Mon May 14 13:24:56 2012 -0400 

    commit on master 

commit c8496d9ac4048a414faffb91486075ab0952e2d7 
Author: Lars Kellogg-Stedman <[email protected]> 
Date: Mon May 14 13:24:43 2012 -0400 

    initial commit 

И еще одна ветвь newbranch, которая выглядит следующим образом:

commit 71587063a73368ea160a78cd6d130f828cb05e0e 
Author: Lars Kellogg-Stedman <[email protected]> 
Date: Mon May 14 13:25:36 2012 -0400 

    commit 3 on new branch 

commit 37ab4fc91c796ed05ecae0c8f504f263cee9603d 
Author: Lars Kellogg-Stedman <[email protected]> 
Date: Mon May 14 13:25:36 2012 -0400 

    commit 2 on new branch 

commit 5fd0768e355d1cba0905aaed327fb20ef263d6ef 
Author: Lars Kellogg-Stedman <[email protected]> 
Date: Mon May 14 13:25:36 2012 -0400 

    commit 1 on new branch 

commit 69b2303df9884627ade245fff4a3376f39646cbd 
Author: Lars Kellogg-Stedman <[email protected]> 
Date: Mon May 14 13:24:56 2012 -0400 

    commit on master 

commit c8496d9ac4048a414faffb91486075ab0952e2d7 
Author: Lars Kellogg-Stedman <[email protected]> 
Date: Mon May 14 13:24:43 2012 -0400 

    initial commit 

Тогда вы можете сделать это:

git checkout master 
git merge --squash newbranch 
git commit -m "merged changes from newbranch" 

Тогда лог для отделения master будет выглядеть так:

commit 0737d3dac5f769f837d4d0ce90ba1004c79d6a92 
Author: Lars Kellogg-Stedman <[email protected]> 
Date: Mon May 14 13:26:29 2012 -0400 

    merged newbranch into master 

commit 69b2303df9884627ade245fff4a3376f39646cbd 
Author: Lars Kellogg-Stedman <[email protected]> 
Date: Mon May 14 13:24:56 2012 -0400 

    commit on master 

commit c8496d9ac4048a414faffb91486075ab0952e2d7 
Author: Lars Kellogg-Stedman <[email protected]> 
Date: Mon May 14 13:24:43 2012 -0400 

    initial commit 
+0

Большое спасибо. Определенно хорошая идея только на один шаг от совершенства. Я не могу получить прямо сейчас, как определить, какие ветви уже были объединены и где они были объединены в мастер. – Stan

Смежные вопросы