14

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

我想将更改重新合并到 Dev 分支中。这可以通过git-tfsTFS 工具来实现吗?或者我是否必须尝试使用​​ TFS 工具来实现?

4

3 回答 3

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 分支更轻松地合并并将它们签入...

于 2012-12-06T08:32:04.733 回答
6

我发现了一种很棒的,如果 hacky 的方式来做到这一点。Git tfs 使用 git config 管理它对 TFS 区域的感知。特别是每个 3 个属性remote;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
于 2012-02-07T17:47:26.753 回答
-1

我不是 git-tfs 用户,但我过去曾使用 git-svn 完成此操作(我相信它有类似的方法)。我认为你的主要问题是你有两个回购。如果您将两个远程分支添加到同一个 git 存储库,那么您应该能够进行本地合并,进行本​​地提交,然后将该提交推送到 TFS。

高温高压

于 2012-01-09T19:59:32.993 回答