5

git-scmページの「リポジトリへの変更の記録」に示されている図では、untrackedファイルが追加されると、そのunmodified状態に移行することが示されています。

ここに画像の説明を入力してください

これは正しいです?$ git add myFile次に実行すると$ git status、コミットの準備ができていることが示されますmyFile。これは、(初心者の観点からは)そのページの図を見ると直感的ではないように見えます。

ダイアグラムが正しくないか、不完全ですか、それともダイアグラムの理解が正しくありませんか?後者の場合、誰かが意味を説明してもらえますか?

4

3 に答える 3

4

以前に追跡されていないgit add新しいファイルを作成すると、すぐにステージングされます(画像の青いステージ)。この図はその点で誤解を招く可能性がありますが、そのページのテキストは、「新しいファイルの追跡」の段落の下に同じように書かれています。

于 2013-03-05T16:37:30.623 に答える
3

この図は、ファイルと同じファイルのバージョンの違いを明確に示していないため、誤解を招く恐れがあります。

ファイルを作成するときは、作業ディレクトリにある現在のバージョンをステージング領域git addに追加します。現在のバージョンはステージングされていると見なされコミットする準備ができています。作業ディレクトリファイルの内容はステージングバージョンのものと同じであるため、ファイルは変更されていないと見なさます。この時点でコミットする場合、リポジトリにチェックインされるバージョンはステージングされたバージョンであり、これも作業ディレクトリでのファイルの外観と一致します。

ただし、ファイルを追加した直後にコミットするのではなく、作業ディレクトリ内のファイルにさらに変更を加える必要があるとします。これで、実際には2つのバージョンのファイルがあります。以前のステージバージョンと、作業ディレクトリの変更バージョンです。この時点でコミットする場合は、以前のステージングバージョンがチェックインされます。これは、作業ディレクトリにあるものとは異なります。

于 2013-03-05T17:16:56.920 に答える
3

あなたの質問への答えはイエスです。追跡されていないファイルをステージングすると、変更されずにステージングされます。

私にとって、この図で最も難しい問題は、ファイルを次のように分類することが意味をなさないことでした。

  • 追跡されていない
  • 変更なし
  • 変更
  • ステージング

私の意見では、正しいカテゴリは次のとおりです。

  • 追跡されていない
  • 変更なし
  • ステージングされていない
  • ステージング

ファイルの状態の正しいカテゴリ

重要な形容詞はピンク色でマークされています。灰色のものは冗長です。「ファイルは追跡、変更、ステージングされます」と言う必要はありません。ステージングされたすべてのファイルが変更および追跡されるため、「ファイルはステージングされています」と言うだけで十分です。

一度気づいたら、追跡されていないファイルはステージングされた状態にしか転送できないことを理解するのは簡単です。これは次の方法で行われます。

git add [filename]

変換を行うコマンドはありません。

  • 追跡されていないファイル=>変更されていないファイル
  • 追跡されていないファイル=>ステージングされていないファイル
于 2013-03-05T18:10:56.403 に答える