本地分支与远程分支的交互
1. 新增本地分支与远程分支的关联
场景:将本地与远程分支关联有四种情况:
- 本地已有分支,远程仓库没有分支
- 本地没有分支,远程仓库没有分支
- 本地已有分支,远程仓库也有分支,需要将两者关联
- 本地没有分支,远程仓库有分支,需要在本地新建一个分支并与远程仓库已有的分支关联
1) 本地已有分支,远程仓库没有分支
a. 即第一次往远程仓库推送分支
- 切换到本地已有分支
- 输入 git push -u origin master
$ git push -u origin master
Counting objects: 19, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (19/19), done.
Writing objects: 100% (19/19), 13.73 KiB, done.
Total 23 (delta 6), reused 0 (delta 0)
To [email protected]:michaelliao/learngit.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
- 由于远程库是空的,第一次推送 master 分支时,加上了 -u 参数;
- Git不但会把本地的master分支内容推送的远程新的master分支,还会把本地的master分支和远程的master分支关联起来;
- 在以后的推送或者拉取时就可以简化命令。
b. 非第一次推送分支
- 输入 git push origin branch_name
- 如果想要往别的远程库中推送就修改远程库的名字即可「origin」,例如: git push zhihu branch_name
2) 本地没有分支,远程仓库没有分支
- 在本地新建分支
- 之后跟第一种情况相同
3) 本地已有分支,远程仓库也有分支,需要将两者关联
指定本地 dev 分支与远程 origin/dev 分支的链接
git branch --set-upstream dev origin/dev
$ git branch --set-upstream dev origin/dev
Branch dev set up to track remote branch dev from origin.
4) 本地没有分支,远程仓库有分支,需要在本地新建一个分支并与远程仓库已有的分支关联
- 输入 git checkout -b dev origin/experiment
hanmeimeideMacBook-Pro:ExPython hanmeimei$ git checkout -b dev origin/experiment Branch dev set up to track remote branch experiment from origin. Switched to a new branch 'dev'
2. 查看本地与远程分支的关联
每增加一组本地与远程分支的关联,在 .git/config 目录中可以看到相对应的关联信息:

3. 删除 / 更新本地与远程分支的关联
【删除】:在 .git/config 文件中删除相应的 [branch "xxx"] 记录即可删除关联的远程库分支
【修改】:删除旧的远程关联分支,并重新增加新的关联分支即可