在某些时候,我必须编辑一个与我正在处理的分支(问题)无关的文件。我不小心把它推送到了 Github,在我创建 Pull Request 时看到了它。
我想从我的分支中删除文件,而不是从项目中删除 - 即:我无法删除文件并将其作为提交推送。
我试过了:git reset HEAD^ path/file.ext
但没有运气(什么也没发生 - 没有错误并且文件没有恢复)。
有谁知道解决这个问题的正确方法吗?
最佳答案
从听起来像是,您基本上希望删除 merge 请求中文件的所有更改。首先要做的是 check out 文件的干净副本并将其添加到您的分支。
git checkout master -- <the file>
现在提交这些更改并将新提交推送到您的 Remote 。 pull 请求应更新为不再对此文件进行更改。
如果你是唯一一个使用过这个分支的人,你可以重新设置你的提交,这样最新的提交就不再出现在你的历史中(但这真的没什么大不了的)。为此你会
git rebase -i master
,选择“压缩”提交。为了更新 pull 请求中的提交,您需要执行 git push -f <your branch>
.以便新提交覆盖旧提交。这一步是完全可选的。
关于Git:从分支中删除单个文件,同时将其保留在项目中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42263536/