合并分支时不修改主仓库.gitignore且不提交被忽略文件的方法
解决方案
你的猜测完全正确,问题核心在于没有取消forget-me文件夹的Git追踪状态——你在复刻仓库中已经将该文件夹加入了Git追踪,即便后续恢复了原仓库的.gitignore,Git也不会自动移除已追踪的文件。
修正后的操作步骤:
- 在复刻仓库创建名为
to-merge的新分支 - 切换到
to-merge分支 - 将
to-merge分支的.gitignore改写为与原仓库完全一致 - 提交
.gitignore的变更:git add .gitignore git commit -m "Revert .gitignore to original state" - 执行命令取消
forget-me文件夹的追踪状态(本地文件会保留,不影响你的战役笔记):git rm -r --cached forget-me - 提交这个移除追踪的变更:
git add . git commit -m "Stop tracking files in forget-me folder" - 将
to-merge分支推送到GitHub上的原仓库 - 创建从
to-merge到原仓库master分支的拉取请求并合并
原理说明:
git rm -r --cached仅从Git的索引(追踪列表)中移除目标文件夹,不会删除本地实际文件,你的DM笔记会完好保留在复刻仓库中。- 该变更合并到原仓库后,原仓库会停止追踪
forget-me文件夹,同时该文件夹会从原仓库的工作区中移除,完全符合你的预期。 - 原仓库的
.gitignore会保持初始状态,后续也不会再追踪该文件夹下的内容。
内容的提问来源于stack exchange,提问作者Northern Tempest
相关产品推荐
相关产品推荐

