1 背景
在本地同步追踪某个远程仓库的某一分支(以develop分支为例)。
2 问题
起初先进行了如下操作:
- 创建一个文件夹,初始化为git仓库:
git init
- 进行用户基本信息配置:
git config
- 创建本地仓库的develop分支:
git checkout -b
- 关联远程仓库git地址:
git remote add
接下来,尝试通过git branch --set-upstream-to
将本地仓库develop分支与远程仓库develop分支进行关联时报错:develop分支不存在。使用git branch -r
发现远程仓库分支为空,其实使用git branch -a
可以发现根本看不到任何分支。
3 解决
因为仅仅是关联了远程仓库,本地仓库并未获取远程仓库的修改(包括分支信息),所以本地看不到远程仓库的分支,也就无法进行分支关联操作。以参考1中的建议,在将本地仓库分支与远程仓库分支进行关联前,可先通过git fetch origin
命令拉取远程仓库的修改,这样便可获取远程仓库分支信息,但还无法看到本地分支。最佳实践是使用git pull origin develop
命令(前提是你必须知道想要将远程仓库的哪个分支并入本地分支),便可看到远程仓库的develop分支和本地仓库的develop分支(当前分支),进而可进行分支关联操作。
4 结论
总结一下最佳实践:
1 | git init |
当然,直接使用git clone
也是可以的(这才应该算是最佳实践!)
1 | git clone repo_addr |
git checkout target_repo_branch
将自动在本地创建一个名为target_repo_branch的分支,并将其与远程仓库中的target_repo_branch分支进行关联。执行完git clone
后,默认在本地仓库创建的是master分支,并将其与远程仓库的master分支进行关联,但通常情况下,maser分支仅用于版本释放,我们并不会直接向mater分支推送修改,而是在其它分支(如develop分支)完成开发与调试后,再通过git merge
将分支上的工作并入master分支。
5 参考
- Git branch -r 无法获取远程分支,ui可以看见分支但是git 命令无法查看解决方案