【发布时间】:2019-07-28 04:57:10
【问题描述】:
在上一次 git 提交期间,我不小心在一个核心文件夹中提交了数百个文件。
我不想丢失这些文件,但我不希望它们出现在我的仓库中。 如何在保留文件的同时撤消最后一次 git 提交?
这是一个本地构建,在 git 推送之前,所以我不关心历史丢失,我更愿意以最简单的方式来做这件事,即如果我可以避免创建新分支或从头部分离,等等,那将是首选。
【问题讨论】:
标签: git
在上一次 git 提交期间,我不小心在一个核心文件夹中提交了数百个文件。
我不想丢失这些文件,但我不希望它们出现在我的仓库中。 如何在保留文件的同时撤消最后一次 git 提交?
这是一个本地构建,在 git 推送之前,所以我不关心历史丢失,我更愿意以最简单的方式来做这件事,即如果我可以避免创建新分支或从头部分离,等等,那将是首选。
【问题讨论】:
标签: git
你需要做的第一件事在这个 stackoverflow 问题中描述:How do I undo the most recent local commits in Git?
这将撤消将保存它们但未在您的计算机上提交的最后一次提交
$ git reset HEAD~
然后要从 git 中删除你不想要的文件,你应该使用 git rm 命令(我假设你想要 -r(递归)选项来删除整个目录
$ git rm -r <dir path>
之后,您应该在 git 中拥有上次提交的所有更改,但它不应该跟踪您意外添加的更改!
我还建议将此核心文件夹添加到您的 .gitignore 文件中
【讨论】:
git rm 命令将它们从跟踪的文件中删除。它的工作方式与 git add 相同,但只是将它们从跟踪的文件中删除。
下面的命令:-
git reset --soft HEAD^^
【讨论】: