次のコマンドを実行しました
git add <foo.java>
git commit -m "add the foo.java file"
ローカルコミットを削除して foo.java をステージング解除するにはどうすればよいですか?
と入力すると、変更した内容が元の内容にgit reset --hard
戻ることがわかりました。foo.java
ベストアンサー1
git reset --soft HEAD~1
は、希望どおりに動作するはずです。この後、最初の変更がインデックスに表示され ( で表示されますgit diff --cached
)、最新の変更はステージングされません。git status
は次のようになります。
# On branch master
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: foo.java
#
# 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: foo.java
#
その後、git add foo.java
両方の変更を一度に実行してコミットできます。