0

誰かが git のスナップショットの概念を説明してくれませんか。誰のデータを一連の変更セットとして保存できるかは理解していますが、それは git のスナップショットとどう違うのでしょうか。そして、なぜこの方法が良いのですか?

基本的な Git ワークフローは次のようになります: (git ドキュメントから取得)

  1. 作業ディレクトリ内のファイルを変更します。
  2. ファイルをステージングし、それらのスナップショットをステージング領域に追加します。
  3. コミットを実行すると、ステージング領域にあるファイルがそのまま取得され、そのスナップショットが Git ディレクトリに永続的に保存されます。
4

2 に答える 2

0

git commit オブジェクトは本質的に、あなたが話しているスナップショットです。

git のすべてのコミットは、その時点でのツリー全体のスナップショット (または状態) を表します。別のコミットは別のスナップショットを作成します。

コミットするためにチェックアウトすることで、いつでもツリー全体の状態を巻き戻すことができます: git checkout commit_id- それはタイムマシンのようなものです。

実際にスナップショットを作成しないファイルの場合git addは、それらのファイルをインデックスに入れて次のコミットの一部にするだけです。実際にコミットすると、コミット オブジェクトは単純にgit add-ed されたファイルを参照します (実際には、これらのファイルはツリーの助けを借りて整理されたブロブ)。

于 2013-09-30T11:07:37.103 に答える