意外提交含绘图的文件夹致Shell卡顿,如何在后续Git提交中排除该文件夹且保留R代码文件修改?
解决方法:排除绘图文件夹同时保留R代码修改
别担心,这个问题很好解决,分几步操作就能搞定,完全不会弄丢你的R代码修改:
第一步:先确保R代码修改安全保存
不管你的R代码修改是还在工作区(未暂存)还是已经暂存但未提交,先把这些修改提交到本地仓库,避免后续操作意外影响:
- 如果修改未暂存:先执行
git add <你的R代码文件路径>(可以用git add *.R批量添加所有R文件) - 然后提交:
git commit -m "Save completed R code changes"
这样你的R代码修改就被安全存在本地仓库里了。
第二步:停止Git追踪绘图文件夹并排除后续提交
接下来要让Git不再追踪那个麻烦的绘图文件夹,同时保留本地的绘图文件(如果需要的话):
移除Git对绘图文件夹的追踪(本地文件保留):
执行命令:git rm -r --cached <绘图文件夹的路径>
比如你的文件夹叫plots,就用git rm -r --cached plots/这里的
--cached参数很关键:它只会让Git停止追踪这个文件夹,本地的绘图文件会原封不动保留,不会被删除。更新.gitignore文件,永久排除该文件夹:
打开项目根目录的.gitignore文件(如果没有就新建一个),添加一行:/<绘图文件夹名>/比如文件夹是
plots,就加/plots/(斜杠确保只匹配文件夹,不会误匹配同名文件)提交这两个修改:
执行:git add .gitignore git commit -m "Stop tracking plots folder and update .gitignore"
如果已经推送到远程仓库怎么办?
如果你之前已经把这个绘图文件夹推送到了远程仓库(比如GitHub/GitLab),那执行完上面的步骤后,再推一次:git push,远程仓库里的绘图文件夹就会被移除,之后的提交也不会再包含它了。
验证一下
你可以执行git status看看,绘图文件夹应该不会出现在"Changes not staged for commit"或者"Untracked files"里,而你的R代码修改已经安全保存,后续提交也只会包含你需要的文件啦。
内容的提问来源于stack exchange,提问作者michel
相关产品推荐
相关产品推荐

