如何在Git中同时保留重命名后的目录与原始目录?
搞定Git保留修改后目录+原始目录的方法
具体操作步骤
- 先切到你的本地修改分支(假设叫
feature-branch),把当前的修改都提交了,确保工作区干净:git add . git commit -m "暂存重命名和修改的内容" - 切到远程的原始分支(比如
main),新建个临时分支用来提取原始目录:git checkout main git checkout -b temp-original-dir - 把原始目录(比如
old-dir)复制到系统临时文件夹做备份:cp -r old-dir /tmp/old-dir-backup - 切回你的修改分支:
git checkout feature-branch - 把刚才备份的原始目录复制回当前分支的工作区:
cp -r /tmp/old-dir-backup ./old-dir - 现在你就能同时看到修改后的新目录和原始状态的旧目录了,提交这个改动:
git add old-dir git commit -m "恢复原始状态的旧目录,保留修改后的新目录" - 最后可以删掉临时分支和系统里的备份:
git branch -D temp-original-dir rm -rf /tmp/old-dir-backup
原理说明
这种方式直接从原始分支提取未修改的目录副本,不会触发合并冲突,而且新目录的所有修改历史都会完整保留——毕竟新目录是你在本地分支逐步修改并重命名来的,Git会自动识别它的历史关联。
内容的提问来源于stack exchange,提问作者RB50
相关产品推荐
相关产品推荐

