我错误地使用了 git commit -a 并在提交中添加了比我想要的文件更多的文件。还有另一个修改过的文件,我希望将其添加为此提交中包含的单独提交。我如何返回(不丢失对文件的修改)然后再单独提交它们。
我也把它推到了一个偏远的地方(虽然我知道自从我推动以来没有人拉过任何东西)。
非常感谢!
答案 0 :(得分:6)
警告,这将远程覆盖更改。如果有人取消当前的提交并在其上工作,可能会发生不好的事情。
# Reset last commit, but keep changes staged
$ git reset --soft HEAD^1
# Unstage unwanted file(s) and recommit
$ git reset HEAD path/to/file
$ git commit
# Push the new commit with force to overwrite changes
$ git push origin -f
答案 1 :(得分:0)
我会立即将之前的提交推送到远程,运行git reset HEAD~
将您的工作区置于您所处的脏状态,然后重新处理您的添加,提交和推送。
答案 2 :(得分:0)
您可以在本地删除这些文件并推送新的提交。
如果您希望将来使用这些文件,可以将其添加到.gitignore文件
答案 3 :(得分:-1)
如果将其推送到单独的分支(而不是主分支),则可以从远程删除整个分支。
之后,您可以使用
还原提交git reset --soft HEAD~1
然后你可以开始提交并再次推送所有内容。