如何将master分支的project1文件夹合并到本地自定义分支并保留本地文件
问题背景
我有一个GitLab仓库,master分支包含多个项目文件夹,由多名开发者共享。此前我创建了自定义分支custom,并在该分支中添加了一个新项目文件夹。之后远程开发者更新了master分支:删除了多个项目文件夹,同时新增了名为project1的文件夹。
我需要仅把master分支里的project1文件夹整合到本地custom分支,同时完全保留custom分支原有的所有文件夹。
之前尝试用merge操作:
git checkout master git pull origin master git checkout custom git merge master
结果出现大量删除/重命名冲突,VS Code里多个本地文件夹被删除,已经用git merge --abort取消了合并,求正确操作方法。
解决方案
不要用merge(会把master的所有变更包括删除操作都带过来),直接从master分支拉取指定的project1文件夹即可,步骤如下:
- 切换到
custom分支,确保工作区干净:
git checkout custom git status # 确认没有未提交的修改,如有先提交或暂存
- 从远程master分支拉取
project1文件夹到当前分支:
git checkout origin/master -- project1/
这条命令会直接从远程master分支取出project1的最新版本,添加到当前custom分支的工作区,不会影响原有文件夹。
- 提交新增的
project1:
git add project1/ git commit -m "引入master分支的project1文件夹"
如果之前的操作导致工作区有异常,可以先执行git reset --hard重置当前分支到最新提交(注意:这条命令会丢弃所有未提交的本地修改,执行前确认没有需要保留的内容),再按上面的步骤操作。
内容的提问来源于stack exchange,提问作者Roberto Jobet
相关产品推荐
相关产品推荐

