チームをバージョン管理に TFS から git に移行したいと考えています。
次のことをしてはいけない理由はありますか?
- git-tfs を使用して中央の git リポジトリを作成する
- 各開発者に中央レポジトリのクローンを作成してもらい、そこからプルして、そこにプッシュします。
- そして、中央リポジトリからのみ tfs を更新しますか?
ありがとう!
チームをバージョン管理に TFS から git に移行したいと考えています。
次のことをしてはいけない理由はありますか?
ありがとう!
git-tfs を使用して中央の git リポジトリを作成する
TFS にはすべてが含まれる中央リポジトリがあるため、これは危険な場合があります。
結果の git リポジトリは巨大なものになる可能性があります (複製するのは簡単ではありません)。
いくつかの小さなGit リポジトリgit-tfs
を作成するために、いくつか作成することをお勧めします。
Git と TFS である git-tfs の相互作用が完全ではないため (Git の主な特徴は、一度作成されたコミットを変更できないことと、git-tfs が機能しないことです)裸のリポジトリを使用する場合)、TFS の前に中央の Git リポジトリを配置するのは簡単ではありません...
それ以外の場合は、すべてのチームがこのワークフローを使用すると思いますが、これを行うという考えを考えるのをやめることができます (マージの競合のため、管理する必要があります)...
git-tfs は裸のリポジトリでは機能しないため、実際には 2 つの git リポジトリを同期する必要があります。プッシュする最初のもの(裸のもの)とTFSと対話する2番目のもの(git-tfsを使用する場所では裸ではありません)。
次に、2 つのオプションがあります。a) 複数の git commit がある場合でも、TFS で 1 つのコミットのみを受け入れる (git-tfs 'checkin' コマンドを使用) b) TFS で各 git commit をレプリケートする (使用する) git-tfs 'rcheckin' コミット)
最初のケース a) は優れているわけではありませんが、2 つのリポジトリ間で同期する新しい git コミットのみが常に存在するため、scipts と git フックを使用して解決する方が簡単です。
2 番目のケース b) は、私にとって唯一許容できるものですが、git リポジトリを git-tfs 'rcheckin' コマンドで同期すると、git コミットごとに新しいリポジトリが作成され、同期スクリプトが書くのがはるかに難しくなります (すべてのマージ競合が解決できるかどうかさえわかりません)。私はこれらのスクリプトを書き始めましたが、努力する価値がないのでやめました (特に、Visual Studio 2012 がソリューション ファイルがリロードされるたびにリロードの問題を解決したため)。それを行いたい場合は、以下の投稿のスクリプトが開始点として適切です...
結論から言うと、そんなことをする価値はないと思います。git-tfs を使用してローカル ワークフローを見つけることができます。これは非常に簡単で、git 中央リポジトリを必要としません...
しかし、それでも Git 中央リポジトリが必要な場合は、この投稿 ( http://sparethought.wordpress.com/2012/08/23/my-environment-for-day-to-day-work-with- git-tfs/ ) のハイブリッドな方法 (TFS へのコミットと git からのフェッチ) が機能しているようです。
Team Foundation Server 2013 は、チーム プロジェクトのソース管理リポジトリとして Git をサポートするようになりました。Git 用の Visual Studio ツールは、Visual Studio に埋め込まれた Git アクセスを提供します ( 2012 のアドインは 2013 に同梱されています)。