Я бы предложил просто преодолеть беспорядок в истории коммитов.
Имейте в виду, что когда вы смотрите на историю, вы обычно смотрите на происхождение некоторого текущего коммита.Если ваш процесс проверки кода создает тупиковые ветви для кода, который был отклонен или повторно передан в качестве другого коммита, то они не будут присутствовать в любом таком происхождении и обычно не будут видны.
Вот длинныйПриведенный ниже, но полный пример этого, с использованием 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.В этом случае я создал новую ветвь для выполнения моей работы после проверки, но на практике вы, вероятно, захотите переместить мастер для новой работы, оставив старую работу в мертвой ветке.