2012-03-09 104 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

相關問題