2011-12-19 181 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