0

本のセクション:

http://git-scm.com/book/en/Git-Basics-Recording-Changes-to-the-Repository#Staging-Modified-Files

ファイルAを変更し、「git add A」を実行してから、ファイルAを再度変更し、このファイルに対して「git commit」を実行すると、以前にステージングされた変更のみがコミットされると言います。ステージングされていない変更をコミットするには-ファイルを再度追加してからコミットします。

ただし、いくつかのテストの結果、ファイルが最初にステージングされた後に行われた変更も含めて、gitはファイルAのすべての変更をコミットすることがわかりました。

誰かがこの問題に光を当てることができますか?ありがとう。

編集:私は-aオプションを使用していません「gitcommit A」にファイルを明示的に指定すると(-aオプションを使用していません)、ステージングされていない変更もコミットするようです。ファイル「gitcommit」なしでコミットすると、コミットメッセージを入力するように求められ、本で説明されているように動作します。

4

2 に答える 2

1

コミットするときにオプションを追加している可能性があります。-aこれにより、コミット前にすべてが追加されます。を省略すると、説明どおりに機能します-a

于 2012-08-31T15:51:13.813 に答える
1

「ファイルAのすべての変更をコミットする」とどのように判断しますか?私のバージョンのではこれを再現できませんgit。あなたがこのプロセスに従うならば、あなたが言っていると私が思うことを繰り返すために:

$ git add A                 #initial commit of A
$ git commit -m first
$ <modify A>
$ git add A                 #stage first set of changes
$ <modify A again>
$ git commit -m second      #without staging second modifications

この時点で確認する必要があるのは、最初の変更セットがコミットされたが、2番目の変更セットはコミットされていないことです。git show HEAD:A2番目の変更を行う前のファイルを表示する必要があります。ただし、2番目の変更はファイルの作業コピー(cat A)に残りgit status、Aにステージングされていない変更があることを報告する必要があります。これを複製しようとしたときに得たものとまったく同じであり、予想されるはずです。

それが表示されていない場合は、上記のリストとは異なる操作を行ったか、git実行しているバージョンが壊れています。

于 2012-08-31T16:58:35.163 に答える