Visual Studio 2013を使用する場合のソース管理のTFVC(TFSバージョン管理)とGitの大きな違いは何ですか?


101

GitとTFVCのソース管理については、さまざまな質問と回答がありますが、現在のところ、GitをTeam Foundation Server / Serviceに統合して、私が見つけることはできません。

Visual Studio 2013を使用して、多種多様な言語(C#、C ++、PHP、Javascript、MySSQL)を使用した緑の牧草地の開発を始めています。将来的には、iOSの開発も行われる予定です。ソース管理のためのSVN、VSS、およびTFVCに精通しています。しかし、私はGitを使用したことがありません。プロセス管理/アジャイル開発にはTFSを好みます...完璧ではありませんが、Visual Studioにうまく統合できます。

それで、私がこれらの2つのシステムの間で決定するのを助けるために...

Visual Studio 2013を使用する場合のソース管理のTFVCとGitの大きな違いは何ですか?

  • 私の場合、ローカルリポジトリ(重要ではないと言っていません)とiOS開発サポートの唯一の利点は何ですか?
  • コマンドラインインターフェイスのGitの唯一の欠点です(それは欠点ではないと主張する人もいます;-P)。
  • Visual Studio 2013 GUI for Gitの経験はありますか?コマンドラインインターフェースなしで基本的な分岐/マージをサポートするのに十分ですか?
  • GitがVisual Studio 2013で使用されていることを示すGitの詳細なスタートアップガイドはありますか?Microsoftには、既存のGitリポジトリをVisual Studio 2013に統合するためのビデオがありますが、GitとVS 2013を一から始めたいと思っています。

私はここで本を探していませんが、いくつかの箇条書きと、TFVCとGitの両方を使用した人々からのいくつかの関連リンクを探しています。

回答:


115

VS 2013を使用する場合のソース管理におけるTFSとGitの大きな違いは何ですか?

MSDNには、Team Foundation Version ControlとGitのすべての機能と違いに関する非常に広範なページがあります

私の場合、ローカルリポジトリ(重要ではないとは言わない)とIoS開発サポートの唯一の利点は何ですか?

いいえ、まだまだありますが、Gitの高度なシナリオであることがよくあります。ローカルリポジトリ、オフラインサポート、およびローカルでの完全な歴史の忠実性は信じられないほど強力であり、Visual Studioを使えばすぐに使用できます。他にも素晴らしい機能がいくつかあります!あるリポジトリから別のリポジトリに分岐してマージする機能は非常に強力です。Pro Gitブックを調べることをお勧めしますこれらについてを。TFSのGitは、もう1つのgitサーバーであり、標準のGitが持つほぼすべての機能を備えています。

マージする前に履歴を書き換えることができるため、多数の小さな変更セットを削除または結合できるため、履歴がわかりやすく、人間として読みやすくなります。

コマンドラインインターフェイスのGitの唯一の欠点です(それは欠点ではないと主張する人もいます;-P)。

TFVCにもコマンドラインがあり、人々はそれを使用しません。Gitを使用したいがTFVCよりもはるかに多くのことをしたくない人にとっては、おそらくUIを離れる必要はありませんが、クールな機能の多くは得られません...

他のいくつかの欠点があるかもしれませんが、それは主に人々が慣れているものとは異なるという事実によるものです。物事を行うときにgitが何をするかを学ぶのに時間をかけなければ、足元で自分を撃つことはそれほど難しくありません。RebaseやSquashなどは非常に強力で、非常にクリーンな履歴を作成しますが、誤って使用するとマージできないという問題が残る可能性があります。TFSには、いくつかのセキュリティ設定を適用して、Gitリポジトリで非常に愚かな決定を下す権限を奪う機能があります

Windows上のGitユーザーにとって非常に優れたアドオンはPoSHGitです。Powershellコマンドラインでコマンドのオートコンプリートを提供します。

VS 2013 GUI for Gitの経験はありますか?コマンドラインインターフェースなしで基本的なブランチ/マージをサポートするのに十分ですか?

基本的な操作に必要なものがすべて揃っています。しかし、何が起こっているのかを知るために、さまざまなブランチを視覚化できる必要があります。GitサーバーとローカルリポジトリはGitにすぎないため、どのgitクライアントもここであなたを助けることができます。SourceTreeはここでのオプションです。Git for Windowsクライアントは別のものです。

標準操作、チェックイン、チェックアウト、マージ、ブランチ(またはプッシュ、プル、フェッチ、コミット、マージ)の場合、UIは正常に機能します。

GitがVS 2013で使用されていることを示すGitの詳細なスタートアップガイドはありますか?MSには、既存のGitリポジトリをVS 2013に統合するためのビデオがありますが、GitとVS 2013をゼロから始めたいですか?

Gitをはじめ、さまざまな場所で利用できます...これらはいくつかのオプションです。

他の良い読み物:

そして、インストールする価値のあるいくつかのツール:


3
ALM RangersはすぐにGit for TFVCユーザー向けのガイダンスをリリースします:vsarbranchingguide.codeplex.com/releases。現在のベータリリースにはまだありません。次のバッチで削除されると思います:)。
jessehouwing 2014年

8
元の投稿からほぼ1年が経過しましたが、VS2013をGitで正常に使用していることを皆さんにお伝えしたいと思いました。単一のチームプロジェクトで複数のリポジトリを作成する機能が気に入っています。マージ中にいくつかの問題が発生しました。いくつかの例では、自動マージは誤って選択します。したがって、マージが成功したように見えるのは実際にはそうではありません。マージされたすべてのファイルを再確認します。また、VS UIでマージがチョークしてエラーをスローする特定のインスタンスがあります(libgit2マージの競合)。修正するには、cmdプロンプトにドロップしてgit pull(funではない)を発行する必要があります。
Greg Grater 2014年

1
Update 4の一部として、最後のエラーが修正されることはわかっています。また、開発者間で最終行の設定が異なり、これらの問題が発生する場合がありました。
jessehouwing 2014年

5
VS 2013 w / Update 4を数か月前にリリースしてから使用しており、Gitの問題はすべてGUIから修正されたようです。私たちはリモートサーバーから定期的にプルする習慣を持っています。これはローカルリポジトリを最新の状態に保つのに役立ちます。また、MSは最近の製品バックログ/タスクボードにいくつかの肯定的な更新を行っています。ボードから直接、説明の編集、割り当て、ステータスの設定、アイテムの優先度/順序の調整ができるようになりました。
Greg Grater、2015年

1
「Git vs TFVC」リンクは、「Gitの使用を開始する」にリンクしています。TFVCよりもGitを使用するほうがよいということですか?; Dが新しいリンクを見つけました:visualstudio.com/en-us/docs/tfvc/comparison-git-tfvc
Martin Schneider

17

TFSで頻繁に使用されるいくつかの混乱した混合用語を明確にする

Team Foundation Server(TFS)は、ソースバージョン管理システム(VCS)コンポーネントを含むアプリケーションライフサイクル管理ツールです。

VCSのことをコンポーネントTFSを 使用していますが、主にあるTeam Foundationのバージョン管理(TFVC)

したがって、問題はTFVC Gitです。

(実際、TFSGitVCSとしてサポートしていますオプションます。)

だから、問題は:TFVC vs Git

jessehouwingはこれを詳細にカバーする素晴らしい答えを持っているので、それを参照してください

どちらを使用するかについては、私の意見ではGitが勝っています

  1. それは軽量です:セットアップと使用を開始するのは簡単です。
  2. 分散された性質であるため、災害に対して非常に弾力性があり、誰かが常にレポのコピーを持っています。
  3. オフライン作業は簡単です。自分の完全なリポジトリを使用して作業しています。変更をコミットしたり、元に戻したり、履歴を参照したりできます。リモートリポジトリと同期する場合にのみ、オンラインである必要があります。
  4. TFSでは、変更の状態(ファイルの追加、変更、ファイルの削除)を保存し、コードの別の状態に切り替える簡単な方法はありません。(たとえば、2つの機能で作業し、前後に切り替える場合)。gitでは、別のブランチをチェックアウトするだけです。

1
TFSにはブランチとシェルフセット(#5を可能にする)があり、本当に必要な場合はgitを使用するようにプロジェクトを構成することもできます。TFS VCSには、#のコマンドラインもあります。それは軽量ではないのですが、それは完全なプロジェクト管理/バグ追跡/作業追跡/リリース管理を持っているとして、それはビルド管理/より多くのアウトボックスのgitのより多くの地獄を行い/チェックインポリシー/内蔵のテスト。
マシュー白く塗りました

@MatthewWhited確かに可能ですが、ディレクトリベースの実装とgitのグラフベースの実装のため、gitに比べて非常に面倒です。simpleそれを行う方法はないと述べたことに注意してください。
ジェームズWierzba 2018

@MatthewWhitedまた、追加のアプリケーションライフサイクルツールに同意しますが、ソースコードのバージョン管理ソリューションのみに私の回答を絞り込みます。
ジェームズWierzba 2018

1
IDK ... TFSは非常に使いやすいと思います。また、GITによって作成されたすべてのブランチが嫌いですが、すべての人が同じコードで、一部のチャーンは高速で他のチャールは低速であるようにするのがより複雑になるためです。
マシューホワイト

分からない。GITは、それが達成しようとしているタスクにとって単純すぎて非常に直感的ではありません(なぜそれがプルリクエストであり、プッシュリクエストではないのですか?!)。TFソース管理は非常に単純で、私のチームの新しい開発者に数分で説明できます。また、ローカルでの作業を奨励することは、チーム内でも個人でも大きな不利益であると考えています。ブランチでプロジェクトを散らかすことなく、Gitでの作業の損失を防ぐにはどうすればよいですか?(これのためにTFS-サーバー上にシェルフセットがあります)
Cesar

4

コマンドラインインターフェイスのGitの唯一の欠点です(それは欠点ではないと主張する人もいます;-P)。

コマンドラインインターフェースに慣れていない場合は、Gitで使用できる複数のGUIフロントエンドがあります。Git自体には、実際にはと呼ばれるリポジトリブラウザGUIツールとgitkgit-guigitのGUIが含まれています。次に、git-colaTortoiseGitなどのサードパーティアプリがあります


2
もちろん、Visual Studio自体がGitのGUIを提供します。しかし、コマンドラインに飛び込んで、本来なら不可能なことを実行したい場合が常にあります。すべてのGitコマンドを公開するGUIは、コマンドラインと同じくらい難しいです。
jessehouwing 2014年

コマンドラインのパワーツールがあります。例えば、存在から枝を完全に排除するために。
エンジニア
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.