Git浅克隆仓库:远程分支检出方法及git pull自动合并问题咨询
浅克隆仓库的分支检出与git pull行为解析
1. 浅克隆仓库正确检出远程分支的方法
用--depth 1做浅克隆后,仓库默认只包含默认分支(比如main)的最新提交,没有其他远程分支的信息。更规范的检出流程应该是:
- 先拉取目标远程分支的最新提交(可保持浅克隆状态):
git fetch origin user/otheruser/their-branch-name --depth 1 - 然后创建本地分支并直接关联对应远程分支作为上游:
git checkout -b user/otheruser/their-branch-name origin/user/otheruser/their-branch-name
这样本地分支就和远程分支建立了跟踪关系,后续执行git pull时,就会自动拉取该远程分支的更新,而非默认分支。
如果已经按你之前的步骤创建了本地分支,也可以事后补设上游关联:
git branch --set-upstream-to=origin/user/otheruser/their-branch-name user/otheruser/their-branch-name
2. git pull自动合并main分支的原因
你当前的操作只是通过git fetch origin xxx:xxx创建了本地分支,但没有给这个分支设置上游跟踪分支。Git在执行git pull时,如果当前分支没有指定上游,就会默认使用仓库的默认分支(通常是main)作为拉取源,所以才会把main的最新代码合并到当前分支。
只要给本地分支关联对应的远程上游分支,就能解决这个问题,具体命令就是上面提到的git branch --set-upstream-to。
内容的提问来源于stack exchange,提问作者Alireza
相关产品推荐
相关产品推荐

