git-tfとgit-tfsの違いは何ですか?
質問
最近、TFS にとても嫌気がさしています。しかし、トンネルの終わりに光があると聞いたことがあります。どうやら、私は git-tf または git-tfs のいずれかを使用して、私のコードを git によって管理されているかのように扱うことができ、中央の TFS サーバーとの間でプッシュ/プルを行うことができるようです。
私の主な疑問は、これらのうちのどれを使うべきかわからないということです。Microsoft によって公式にサポートされている git-tf と、もっと長い間存在している git-tfs があります。これらの違いは何でしょうか、また、どちらを最初に試すべきでしょうか。
どのように解決するのですか?
免責事項:私は
を開始しました。
git-tf
プロジェクト
を立ち上げ、現在では私が頻繁に貢献しなくても、プロジェクトは非常に有能な人の手に渡っていますが、これに関する私の意見は絶対に
強く
に偏っていると考えてください。 (そして、あなたが Windows を使用していると仮定すれば、おそらく予想外です)。
2 つのツールの間には、2 つの基本的な違いがあります。
-
git-tfs
は Windows ユーザー向けに構築され、.NET TFS SDK の上に書かれています。 TFS SDK は ではなく は Mono の下では実行されないので、このためgit-tfs
はクロスプラットフォームでの使用には適しません。 -
git-tf
は、クロス プラットフォーム ユーザーのために構築され、Java TFS SDK 上で記述されています。 したがって、Java TFS SDK がサポートする場所 (Windows, Mac, Linux, AIX, HP-UX, Solaris, etc...) であればどこでも実行可能です。git-tf
は、Xcode ユーザーが TFS にアクセスできるようにするために明示的に作成されました。
Windows では、もちろん、どちらかを使用することができます。 私は、必ずしもどちらが優れていると言うつもりはありません。 しかし、私は言います。
-
私の に関する最大の不満は
git-tfs
の最大の不満は、Mac OS 上で動作しないことです。 もしgit-tfs
をクロスプラットフォーム化する方法があればgit-tf
はほぼ間違いなく存在しないでしょう。 -
git-tfs
は より速く よりも速い場合があります。git-tf
. パフォーマンスは ではない 最初の数回のリビジョンでは、パフォーマンスが優先されました。 -
なぜなら
git-tf
は幅広いプラットフォームのサポートマトリックスを持つため、その機能は必然的に制約されることを意味します。 たとえば はありません。 UIです。git-tfs
は、一方ではcheckintool
コマンドを使用すると、通常の TFS チェックイン ダイアログが表示されます。 これは、変更を視覚化するのに非常に便利です。 (私の記憶では、そこから適切なビジュアル diff を開くことができるなど)。 -
git-tf
は、git リポジトリに直接データを投入し、TFS オブジェクトを git オブジェクトデータベースに直接ダウンロードすることによって動作します。git-tfs
は、隠しフォルダに TFS の作業フォルダマッピングを作成し、そこから git リポジトリにデータを取り込むことで動作します。 ここにはディスクのペナルティがあるので、超巨大なリポジトリを持っている場合、これを感じるかもしれません。 -
git-tfs
は、TFS のブランチを git のブランチにマッピングしてみることができます。 多くの人が、これはgit-tfs
git のブランチモデル(リポジトリレベル)と TFS のブランチモデル(リポジトリ内のフォルダとして表される)は根本的に異なるため、最も単純なワークフロー以外では問題が発生する可能性があります。 しかし、あなたのマイレージは異なるかもしれません。 -
git-tfs
はコミュニティによって活発に開発されています。git-tf
はコミュニティによる採用がありません。
と言っているように聞こえるのは嫌ですね。
git-tf
が悪いと言っているように思われたくないのです。 そんなことはありません。 実際にはかなり良いものだと思います。 しかし、それはあなたの最良の選択ではないかもしれません。
更新してください。
git-tf
は寿命に達しました
. マイクロソフトによる保守やサポートは終了しています。 私たちは
git-tfs
をお勧めします。
関連
-
[解決済み] Git で直近のローカルコミットを取り消すには?
-
[解決済み] Gitブランチをローカルやリモートで削除するには?
-
[解決済み] git pull」と「git fetch」の違いは何ですか?
-
[解決済み] 現在のGit作業ツリーからローカル(未追跡)ファイルを削除する方法
-
[解決済み] リモート Git リポジトリの URI (URL) を変更するには?
-
[解決済み] 新しいローカルブランチをリモートの Git リポジトリにプッシュし、それを追跡するにはどうすればよいのでしょうか?
-
[解決済み] ローカルの Git リポジトリが元々クローンされた URL を特定するにはどうすればよいですか。
-
[解決済み] git add -A」と「git add .」の違い。
-
[解決済み] Git で最新のコミットを新しいブランチに移動する
-
[解決済み】Gitバージョン管理でファイルの変更履歴を見る
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Gitで「このリポジトリでは別のgitプロセスが実行されているようです...」と表示される問題
-
undefinedGitのプッシュコードには、! [rejected] master -> master (fetch first) 問題があります。
-
エラーが発生しました。マージされていないファイルがあるため、プリングはできません
-
git を使用してリモートリポジトリを更新する場合、現在のブランチの先端がエラーの背後にあるため、更新が拒否されました。
-
Git学習まとめ(2)コミットには何も追加されていないが、未追跡のファイルは存在する
-
Git はファイル名の大文字と小文字を無視し、修正する
-
Git: bash: cd: 引数が多すぎる
-
[解決済み] チェリーピックのコンフリクトを解決するにはどうしたらいいですか?
-
[解決済み] VSCodeからgitの統合を削除する
-
[解決済み] 非標準のポートでリモートリポジトリを使用する