在 Git 中撤消添加文件
Undo Add Files in Git
我在 git 的目录中有一堆文件未被跟踪。我犯了一个错误,先 git add .
然后 提交并推送 更改。我怎样才能回到在该提交之前未跟踪的文件再次未跟踪的位置,但仍在目录中(git reset --hard
删除了所有文件,对我不利,而不是再次取消跟踪它们)。我在不同位置有很多文件需要取消跟踪,所以 git reset <FILE>
对我不起作用。
$ git commit -m "Something terribly misguided" (1)
$ git reset HEAD~ (2)
<< edit files as necessary >> (3)
$ git add ... (4)
$ git commit -c ORIG_HEAD
- 这是您要撤消的内容
- 这会使您的工作树(磁盘上文件的状态)保持不变,但会撤消提交并使您提交的更改未暂存(因此它们将在 git 状态下显示为 "Changes not staged for commit"并且您需要在提交之前再次添加它们)。如果你只想对之前的提交添加更多更改,或者更改提交消息1,你可以使用 git reset --soft HEAD~ 代替,这就像 git reset HEAD~ 但保留你现有的更改已上演。
- 更正工作树文件。
- git 添加您想要包含在新提交中的任何内容。
- 提交更改,重新使用旧的提交消息。 reset 将旧的 head 复制到 .git/ORIG_HEAD;使用 -c ORIG_HEAD 提交将打开一个编辑器,该编辑器最初包含来自旧提交的日志消息并允许您对其进行编辑。如果不需要编辑消息,可以使用 -C 选项。
来源:
How to undo last commit(s) in Git?
首先,您应该通过 :
将最后一次提交和 return 所有文件恢复到暂存区
git reset --soft HEAD~1
这不会删除任何文件,而且很安全。
然后,您可以删除所有添加到暂存区的文件:
git reset
现在,如果您 运行 git status
,您可以看到所有文件都未暂存。
然后您可以 git add
您想要的唯一文件。
我在 git 的目录中有一堆文件未被跟踪。我犯了一个错误,先 git add .
然后 提交并推送 更改。我怎样才能回到在该提交之前未跟踪的文件再次未跟踪的位置,但仍在目录中(git reset --hard
删除了所有文件,对我不利,而不是再次取消跟踪它们)。我在不同位置有很多文件需要取消跟踪,所以 git reset <FILE>
对我不起作用。
$ git commit -m "Something terribly misguided" (1)
$ git reset HEAD~ (2)
<< edit files as necessary >> (3)
$ git add ... (4)
$ git commit -c ORIG_HEAD
- 这是您要撤消的内容
- 这会使您的工作树(磁盘上文件的状态)保持不变,但会撤消提交并使您提交的更改未暂存(因此它们将在 git 状态下显示为 "Changes not staged for commit"并且您需要在提交之前再次添加它们)。如果你只想对之前的提交添加更多更改,或者更改提交消息1,你可以使用 git reset --soft HEAD~ 代替,这就像 git reset HEAD~ 但保留你现有的更改已上演。
- 更正工作树文件。
- git 添加您想要包含在新提交中的任何内容。
- 提交更改,重新使用旧的提交消息。 reset 将旧的 head 复制到 .git/ORIG_HEAD;使用 -c ORIG_HEAD 提交将打开一个编辑器,该编辑器最初包含来自旧提交的日志消息并允许您对其进行编辑。如果不需要编辑消息,可以使用 -C 选项。
来源: How to undo last commit(s) in Git?
首先,您应该通过 :
将最后一次提交和 return 所有文件恢复到暂存区git reset --soft HEAD~1
这不会删除任何文件,而且很安全。
然后,您可以删除所有添加到暂存区的文件:
git reset
现在,如果您 运行 git status
,您可以看到所有文件都未暂存。
然后您可以 git add
您想要的唯一文件。