2012-03-09 105 views

回答

6

即使它们已发布,重新映射非主(maint *,next)分支也可以。 只需使用主题分支发布新的东西进行审查。然后在将它们合并到主服务器或拒绝请求之后删除它们。 请参阅 man gitworkflows

+0

我尝试了两种方法,这对我很好。谢谢! – 2012-03-11 23:25:04

1

我会建议简单地克服提交历史混乱。

请记住,当您查看历史记录时,通常会查看某个当前提交的祖先。如果您的代码审查过程会为被拒绝或重新提交为不同提交的代码创建死胡同的分支,那么这些分支将不会出现在任何此类祖先中,并且通常不会被看到。

下面是这个啰嗦,但完整的例子,使用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 <[email protected]> 
Date: Sat Mar 10 09:15:48 2012 +0000 

    bad 

commit 5108762ba7011464fe3c57cf762d0d18f337f68c 
Author: Tom Anderson <[email protected]> 
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 <[email protected]> 
Date: Sat Mar 10 09:17:30 2012 +0000 

    good 

commit 5108762ba7011464fe3c57cf762d0d18f337f68c 
Author: Tom Anderson <[email protected]> 
Date: Sat Mar 10 09:15:28 2012 +0000 

    base 

即使坏承诺是在仓库中,它不会在git的日志输出显示。在这种情况下,我创建了一个新的分支机构来完成我的后期审查工作,但实际上,您可能想要将新工作移动到主体上,而将旧工作留在死枝上。

+0

如果我的例子正确,这只适用于最后一次提交。要么?否则,我可能需要樱桃选择'postreview'? – 2012-03-10 14:23:28

+0

我在考虑从开​​始编写正在审查的代码之前开始您的新分支,可能会提交几次提交,所以是的,您会挑选您希望保留到新分支的所有内容。它基本上与rebase相同,但是对一些提交进行了一些编辑,而不是删除旧的提交。事实上,你也许可以将其作为rebase。 – 2012-03-10 22:54:10

相关问题