Как сохранить чистую историю после проверки кода GitHub Pull Request? - PullRequest
10 голосов
/ 10 марта 2012

Наш код находится на Github, и мы используем Pull Requests для просмотра кода. В результате проверки коммит может быть отменен или изменен. Это может загромождать историю коммитов. Команда rebase не рекомендуется, поскольку коммиты уже «общедоступны».

Если вы выполняете проверку кода аналогичным образом: как вы справляетесь с этим? Как вы храните свою историю в чистоте?

Ответы [ 2 ]

6 голосов
/ 10 марта 2012

Перебазирование неосновных (maint *, next) веток в порядке, даже если они опубликованы.Просто используйте ветки тем, чтобы публиковать новые материалы для обзора.Затем удалите их в любом случае после того, как они были объединены с главным или после того, как запрос на удаление был отклонен.Смотри man gitworkflows

1 голос
/ 10 марта 2012

Я бы предложил просто преодолеть беспорядок в истории коммитов.

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

Вот длинныйПриведенный ниже, но полный пример этого, с использованием git log в качестве средства просмотра истории:

$ git init example
Initialized empty Git repository in /private/tmp/example/.git/
$ cd example/
$ date >date
$ git add date
$ git commit -am base
[master (root-commit) 5108762] base
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 date
$ date >date
$ git commit -am bad
[master 440c3b6] bad
 1 files changed, 1 insertions(+), 1 deletions(-)
$ git log
commit 440c3b61b279e8b7cd5f5f656984b63ba18e518b
Author: Tom Anderson <twic@urchin.earth.li>
Date:   Sat Mar 10 09:15:48 2012 +0000

    bad

commit 5108762ba7011464fe3c57cf762d0d18f337f68c
Author: Tom Anderson <twic@urchin.earth.li>
Date:   Sat Mar 10 09:15:28 2012 +0000

    base
$ git branch postreview 5108762ba7011464fe3c57cf762d0d18f337f68c
$ git checkout postreview
Switched to branch 'postreview'
$ date >date
$ git commit -am good
[postreview 42e5257] good
 1 files changed, 1 insertions(+), 1 deletions(-)
$ git log
commit 42e5257addf73b516676d24e7092b0e4768d3564
Author: Tom Anderson <twic@urchin.earth.li>
Date:   Sat Mar 10 09:17:30 2012 +0000

    good

commit 5108762ba7011464fe3c57cf762d0d18f337f68c
Author: Tom Anderson <twic@urchin.earth.li>
Date:   Sat Mar 10 09:15:28 2012 +0000

    base

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

...