本地分支与远程分支的交互

1. 新增本地分支与远程分支的关联

场景:将本地与远程分支关联有四种情况:

  1. 本地已有分支,远程仓库没有分支
  2. 本地没有分支,远程仓库没有分支
  3. 本地已有分支,远程仓库也有分支,需要将两者关联
  4. 本地没有分支,远程仓库有分支,需要在本地新建一个分支并与远程仓库已有的分支关联

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. 非第一次推送分支

  1. 输入 git push origin branch_name
  2. 如果想要往别的远程库中推送就修改远程库的名字即可「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"] 记录即可删除关联的远程库分支

【修改】:删除旧的远程关联分支,并重新增加新的关联分支即可

results matching ""

    No results matching ""