如何无需提交,将Git分支的指定文件/目录复制到另一分支?
跨Git分支复制特定文件/目录的简便方案
不需要克隆多个仓库,只需在同一个本地仓库内就能完成从一个分支复制指定文件/目录到另一个分支的操作,具体步骤如下:
单个文件复制(以dev→prod为例)
- 切换到目标分支(prod):
git checkout prod - 从源分支(dev)拉取指定文件到当前分支:
执行后,dev分支的git checkout dev -- service/web/company.htmlservice/web/company.html会直接覆盖当前prod分支的对应文件,同时该文件会被加入暂存区。你可以直接修改文件内容,之后用git add和git commit提交到prod分支即可。
整个目录复制
如果要复制dev分支的整个目录(比如service/web/docs/)到prod分支,操作逻辑一致:
- 切换到prod分支:
git checkout prod - 拉取指定目录:
目录下所有已提交的文件都会被同步到当前分支的工作区和暂存区,后续修改、提交流程和单个文件一致。git checkout dev -- service/web/docs/
注意事项
- 执行拉取操作前,确保当前分支的目标文件/目录没有未提交的修改,否则会被直接覆盖。如果需要保留现有修改,可以先执行
git stash暂存,完成拉取后用git stash pop恢复暂存的内容。 - 该操作仅复制源分支中已提交的文件/目录内容,未提交的变更不会被同步。
内容的提问来源于stack exchange,提问作者Subzero123
相关产品推荐
相关产品推荐

