14

を使用してgit-tfsいますが、を使用して2つのTFSブランチをマージできるかどうか疑問に思いましたgit-tfs。$ / MyCompany/Devと$/MyCompany/Release-3.3の2つのブランチがあります。Release-3.3は、Devブランチに由来します。両方とも、gittfsを使用して異なるgitリポジトリとしてチェックアウトされます。

変更をDevブランチに再組み込みしたいと思います。git-tfsこれはTFSツールを使用して達成できますか、それとも実行する必要がありますか?

4

3 に答える 3

10

git-tfs 0.16以降、(branchコマンドを使用して)TFSブランチを管理できるため、既存のブランチを簡単に初期化して作成し、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

これを行うためのハッキーな方法なら、私は素晴らしい方法を見つけました。Git tfsは、gitconfigを使用して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
于 2012-02-07T17:47:26.753 に答える
-1

私はgit-tfsユーザーではありませんが、過去にgit-svnを使用してこれを行ったことがあります(これも同様のアプローチであると思います)。あなたの主な問題は、2つのリポジトリがあることだと思います。両方のリモートブランチを同じgitリポジトリに追加すると、ローカルマージを実行し、ローカルコミットを実行してから、そのコミットをTFSにプッシュできるようになります。

HTH

于 2012-01-09T19:59:32.993 に答える