Git新手求助:如何从合并生成的提交中移除无需追踪的文件
解决Git合并提交中意外包含无需追踪文件的问题
别担心,这种不小心把IDE配置文件夹(比如.idea)带进提交的情况太常见了,我来给你几个靠谱的解决办法,分情况处理:
情况一:还没推送到远程仓库(你的情况刚好符合)
这是最容易处理的,因为我们可以直接修改最后一次合并提交:
首先确认你的工作区没有未提交的修改,用命令检查:
git status如果显示
nothing to commit, working tree clean就可以继续。把
.idea文件夹从Git的追踪列表中移除,但保留本地的文件(如果你想彻底删掉本地文件,可以去掉--cached参数):git rm --cached -r .idea把这次修改追加到最后一次合并提交里,不用修改原来的提交信息:
git commit --amend --no-edit现在可以检查一下提交记录,确认
.idea已经被移除了:git log --name-status -1输出里应该只有你需要的
.src等文件了。最后正常推送到远程即可:
git push origin feature
额外提醒:避免以后再犯同样的错
为了防止.idea这类IDE配置文件再被意外提交,记得在你的仓库根目录创建(或修改).gitignore文件,添加一行:
.idea/
然后把.gitignore也提交到仓库里,这样Git以后就会自动忽略这个文件夹了。
情况二:已经推送到远程仓库(备用方案)
如果你不小心已经推了,但这个feature分支是你个人在用、不会影响其他同事的分支,可以用强制推送来覆盖远程的提交:
git push --force-with-lease origin feature
注意:绝对不要在公共分支或者多人协作的分支上用强制推送,这会打乱其他人的工作进度!
内容的提问来源于stack exchange,提问作者Johnyb
相关产品推荐
相关产品推荐

