2012-07-04 4 views
5

私たちはTFSを使用しています.Git-TFSツールを使用して、ローカルコミットをTFSリポジトリにプッシュする前に、より柔軟に作業できるようにしようとしています。Git-Tfs:Git CommitごとのTFSチェンジセット?

私はこの作業を行っていますが、git tfs ctを実行すると、すべてのコミットを1つのTFSチェンジセットにチェックします。私は何かを逃しているのか、それともこれはどうやって動くのだろう?個別のチェンジセットとして私のコミットを個別にTFSにプッシュしないと、最初はgit-tfsを使用する目的を無効にするようです。

答えて

9

新しいgitチェンジセットを一度に1つずつコミットするrcheckinコマンドを使用して、各tfsコミット後に残っているコミットを再配置して通常の見た目のツリーを生成します。 checkintoolサブコマンドを使用すると、mergecommitが生成されます - 私はgitコミットを嫌に思います。

したがって、私たちは通常のgitワークフローを使用しています:機能ブランチをチェックアウトし、それを処理し、チェックアウトマスターと 'git tfs pull'を行い、必要に応じてマスターに対してフィーチャーブランチをリベースし、フィーチャーをマスターにマージしてgit tfs rcheckinを実行します。最後に、フィーチャーブランチを削除します。まれに、これは失敗しました(tfsファイルがロックされているため)。rcheckinはすべてを賢明な状態にして停止していたので、障害が解消されてもそれを続行することは問題ありませんでした。

git-tfsはすべてTFSを使用します。

+0

素晴らしい!それはちょうど私が欲しかったように機能なぜGithubのreadmeとwikiページにそのコマンドが言及されていないのだろうか。 – Dan

+0

ロックされたファイルのために 'rcheckin'が失敗した点について私が気に入らないのは、あなたの変更が_部分的に_ TFSサーバーに送信されていることだけです。私はGit shyでTFSを好む人たちのチームと一緒に仕事をしているので、私の成功/失敗が常に原子になるように、私はrebase -iで自分のコミットを押しつぶす。 –

関連する問題