如何将master分支指定目录复制至空孤立lib分支?
正确操作流程
按下面的步骤重新操作,就能把master分支的目标目录复制到空的孤立lib分支:
- 克隆仓库并进入项目目录
git clone git@github.com:fireflysemantics/slice.git cd slice
- 创建并切换到空的孤立分支
lib
git switch --orphan lib
执行完这一步后,用git branch命令查看,能看到当前处于lib分支,且这个分支还没有任何提交记录。
- 从
master分支把目标目录复制到当前lib分支的工作区
git checkout master -- projects/slice/src/lib/
这一步只会把master分支里的projects/slice/src/lib/目录及所有内容同步到当前lib分支的工作区,不会切换分支。你可以用ls projects/slice/src/lib/确认内容已经存在。
- 把这些内容提交到
lib分支
git add projects/slice/src/lib/ git commit -m "初始化lib分支,同步master分支的lib目录"
- (可选)如果要推送到远程仓库,执行这条命令
git push origin lib
你之前操作出问题的原因
你执行完git switch --orphan lib后,大概率没成功切换到lib分支——可能是当时工作区有未提交的修改,导致创建孤立分支失败,你没注意到提示。后续的git checkout命令自然是在master分支上执行的,所以最后git status显示还在master分支。
解决办法是先执行git stash暂存当前工作区的修改,再重新执行创建孤立分支的命令,确保切换成功后再做后续操作。
内容的提问来源于stack exchange,提问作者Ole
相关产品推荐
相关产品推荐

