0

最後のコミットからファイルを削除し、それ以外はすべて保持するにはどうすればよいですか?まだリモートリポジトリに何もプッシュしていないので、ローカルでプッシュする必要があることに注意してください。

私のワークフロー:

  • いくつかのファイルを編集する
  • 誤ってという名前の新しいファイルを作成するuntitled.txt
  • すべてをコミットする
  • 不要なuntitled.txtファイルに注意してください
  • 消して
  • ???
  • 末永く幸せに過ごす

前もって感謝します!

4

3 に答える 3

3

を使用して、最後のコミット(メッセージ、ファイルなど)で好きなものを簡単に変更できますgit commit --amend

したがって、次のようなことを行います。

git rm untitled.txt
git commit --amend
于 2012-06-26T02:44:04.450 に答える
0

次のコミットでファイルを削除しないのはなぜですか?通常、コミット履歴を編集することは悪い習慣と見なされており、後続のコミットでファイルを削除するだけでも恥ずかしいことではありません。

git rm untitled.txt
git commit -m "Woopsy"
于 2012-06-26T02:44:32.120 に答える
0

最後のコミットからファイルを削除するだけでなく、完全に削除したい場合は、他の答えで問題ありません。

しかし、ファイルの作成が偶発的ではなく、コミットへのそのファイルの追加のみである場合はどうなるでしょうか。

最後のコミットからファイルを削除したいが、別のコミットにファイルを追加できるようにファイルを作業コピーに残したい場合は、次のコマンドgit addに追加できます。--cachedrm

git rm --cached wanted-for-another-commit-but-not-this-one.txt
git commit -a --amend

次に、コミットから削除されたことを確認します。

git show -p   # no more diff between /dev/null and the file!

それがまだそこにあることを確認します。

ls -l wanted-for-another-commit-but-not-this-one.txt

追跡されていないファイルのリストにあり、git add:の対象であることを確認します。

git status

基本的に、作業コピーを保持したまま、ステージングされたファイルのインデックスからファイルを削除します。git commit -a --amendコマンドは、作業コピーの変更だけでなく、インデックスの変更も認識します。インデックスからの削除に気づき、その変更を新しく書き換えられたコミットに伝播します。

于 2014-06-12T23:20:40.430 に答える