1. ホーム
  2. git

[解決済み】なぜ「git commit」は私の変更を保存しないのですか?

2022-02-10 22:53:26

質問

をしました。 git commit -m "message" このように

> git commit -m "save arezzo files"
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   arezzo.txt
#       modified:   arezzo.jsp
#
no changes added to commit (use "git add" and/or "git commit -a")

しかし、その後、私が git status は、同じ変更されたファイルを表示します。

> git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#       modified:   arezzo.txt
#       modified:   arezzo.jsp
#
no changes added to commit (use "git add" and/or "git commit -a")

何が間違っているのでしょうか?

どうすればいいですか?

メッセージの通りです。

<ブロッククオート

コミットに変更はありません("git add" や "git commit -a" を使用します)。

Git には、コミットする前にファイルを追加する必要があるステージングエリアがあります。 その説明はこちら .


具体的な例では、以下のようになります。

git commit -am "save arezzo files"

(余分な a は、次のように書くこともできます。 git commit -a -m "message" - どちらも同じことをします)

また、コミットに追加するものをより厳選したい場合は git add コマンドを実行して、適切なファイルをステージングエリアに追加し ギットステータス をクリックすると、これから追加される内容をプレビューできます (使用されている文言に注意することを忘れないでください)。

また、gitの使い方に関する一般的なドキュメントやチュートリアルは、以下のページで見ることができます。 git ドキュメントページ で、ファイルをステージング/追加する概念についてより詳しく説明します。


もう一つ知っておくと便利なのが インタラクティブステージング - を追加することができます。 ファイルの一部 をステージングエリアに追加することで、3 つの異なるコード変更 (関連性はあるが異なる機能) を行った場合、インタラクティブモードを使って変更を分割し、それぞれの部分を順番に追加/コミットすることができるようになります。このように、より小さな特定のコミットをしておくと便利です。