使用git tfs合并两个TFS分支

时间:2011-12-19 10:13:33

标签: git tfs git-tfs

我正在使用git-tfs,我想知道是否可以使用git-tfs合并两个TFS分支。我有两个分支$ / MyCompany / Dev& $ / MyCompany的/释放-3.3。 Release-3.3源自Dev分支。两者都使用git tfs检出不同的git存储库。

我想将更改重新合并到Dev分支中。这可以通过git-tfs来实现,还是我不得不尝试使用TFS工具来实现?

3 个答案:

答案 0 :(得分:10)

从git-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)是在与git合并之前已经在TFS中检查过所有提交并在TFS中检查它。

因此,您现在可以比使用2TFS分支更容易合并并在...中检查它们。

答案 1 :(得分:6)

我找到了一个很好的,如果hacky这样做的方式。 Git tfs使用git config管理它对TFS区域的认识。具体为每remote 3个属性; url,repository和fetch,例如:

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

您可以通过使用不同的名称remote再次设置这3个属性来添加其他default。例如:

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

答案 2 :(得分:-1)

我不是git-tfs用户,但我过去用git-svn做过这个(我相信有类似的方法)。我认为你的主要问题是你有两个回购。如果将两个远程分支添加到同一个git仓库,则应该能够进行本地合并,执行本地提交,然后将该提交推送到TFS。

HTH