2011-12-19 256 views
14

我使用的是git-tfs,我想知道是否可以使用git-tfs合併兩個TFS分支。我有兩個分支$/MyCompany/Dev & $/MyCompany/Release-3.3。版本3.3源自Dev分支。兩者都使用git tfs作爲不同的git存儲庫檢出。用git tfs合併兩個TFS分支

我想重新將這些更改合併到Dev分支中。這可以通過git-tfs實現嗎?還是我不得不採取措施嘗試使用TFS工具來實現?

+0

爲什麼使用Git TFS? – 2012-01-03 06:42:28

+2

我寧願使用git merge算法,因爲它似乎自動解決更多的衝突。 – Ceilingfish 2012-01-03 12:30:55

回答

6

我發現一個真棒,這樣做的,如果哈克的方式。 Git tfs使用git config管理它對TFS區域的認識。特別是每remote有3個屬性; URL,存儲庫和獲取,例如:

tfs-remote.default.url=http://tfsserver:8080/tfs/collection 
tfs-remote.default.repository=$/Product/Branch/Component 
tfs-remote.default.fetch=refs/remotes/default/master 

您可以通過使用不同的名稱重新設置這3個屬性default再添remote。例如:

tfs-remote.feature_branch.url=http://tfsserver:8080/tfs/collection 
tfs-remote.feature_branch.repository=$/Product/FeatureBranch/Component 
tfs-remote.feature_branch.fetch=refs/remotes/default/feature_branch 

您現在可能需要發出git tfs bootstrap

然後,您可以發出:使用

git tfs fetch -i feature_branch 

然後合併的提交:

git merge tfs/feature_branch 
+1

這實際上是否在TFS中創建合併等待更改?如果不是,那麼你就是想要從TFS客戶端進行合併的下一個人,因爲TFS不會將合併記錄爲已執行。因此,它會嘗試再次合併這些變更集。 (不可否認,這些衝突將是相當微不足道的,但它可能仍然很煩人。) – 2012-02-07 19:08:47

+0

你說得很對,如果有多個用戶合併分支,這種機制會引起問題。我可能在這裏找到了更好的解決方案:http://stackoverflow.com/a/7334268/58991 – Ceilingfish 2012-02-07 21:15:53

+0

有誰知道git-tf(不是git-tfs)是否允許這種合併?簽入是以合併還是以新代碼的形式出現? – 2012-09-06 15:39:36

-1

我不是一個git-tfs用戶,但我在過去使用git-svn(我認爲它有類似的方法)。我認爲你的主要問題是你有兩個回購。如果您將兩個遠程分支添加到同一個git倉庫中,則應該可以執行本地合併,執行本地提交,然後將該提交推送到TFS。

HTH

10

由於混帳TFS 0.16,您可以管理TFS分支機構(含branch命令),所以您現在可以輕鬆初始化現有分支,創建一個併合並TFS分支!

https://github.com/git-tfs/git-tfs/blob/master/doc/commands/branch.md#initialize-an-existing-tfs-branch

而且自發布以來0.19,你可以做的2個TFS分支git的合併在TFS簽入它(與rcheckin),它會作爲一個合併變更集簽入:https://github.com/git-tfs/git-tfs/blob/master/doc/commands/rcheckin.md#checkin-a-merge-changeset

唯一的限制(由於TFS)是所有的提交應該已經在TFS中進行了檢查,然後再與git進行合併並在TFS中進行檢查。

所以,你現在可以比2TFS分支合併更容易和檢查他們...

+0

請注意,截至2013年9月30日,文檔表明'init-branch'已被棄用,以支持'branch --init' – 2013-10-25 07:39:35

+0

@DavidGardiner您的權利,但2是等同的一個是另一個的包裝),該命令將不會被刪除,直到0.20(並且0.19仍未釋放)。 – Philippe 2013-10-25 10:18:27

+0

不用擔心..我想我們可以假設你是git-tfs info的一個好源:-) – 2013-10-25 12:32:34