2

Gitで分岐を実行するのがいかに簡単であるかを嬉しく思います。私が心配しているのは、ディレクトリ構造にある可能性のある何百ものファイルすべてについて、別のブランチをチェックアウトするときにすべてのファイルが正しい状態になっていることをGitが本当に信頼できるかどうかです。速すぎて真実ではないようです。

誰かが別のブランチをチェックアウトし、一部のファイルがスキップされた、または必要なことがわかっているときに変更されなかったという経験をしたことがありますか?

4

3 に答える 3

3

Gitはファイルの内容のハッシュに基づいてファイルへのポインターを管理するため、ファイルの数に関係なく、ほぼ同一のディレクトリを書き換える必要はありません。コミットの構造とツリーの概念を見ると、Gitがこれらの構造を非常に効率的にウォークし、変更が必要な作業ディレクトリの部分のみを変更することがわかります。シンプルさに力があります。

Gitや大規模なプロジェクトで問題が発生したことはありません。Linuxカーネルやその他の大規模なプロジェクトはGitでバージョン管理されており、問題はなく、高速で信頼性の高いパフォーマンスを実現します。

于 2012-08-02T08:51:26.040 に答える
2

はい、あなたはそれを信頼することができます。ただし、実際に問題が発生した場合は、リポジトリの他のクローン(メインリポジトリ自体以外)がバックアップになります;)

とても速いので

  • そもそもすべての操作はローカルです。つまり、低速のネットワーク操作は必要ありません。
  • 変更をワークスペースにプッシュするだけです。現在のブランチとブランチからチェックアウトの間の最初の共通の祖先を取得し、現在のチェックアウトからこの祖先に変更を戻し、祖先から他のブランチに変更を適用します。これはバックグラウンドでのみ発生しますが、これによりファイルの量、または最後にワークスペースにプッシュする変更が大幅に削減されます。

多分(おそらく、おそらく;))他の最適化があります。知らない。

于 2012-08-02T08:46:16.407 に答える
1

私はGitを数年間使用しており、この分野で信頼性が高いことがわかりました。私は何千ものファイルのプロジェクトでそれを使用しました。

于 2012-08-02T08:47:36.863 に答える