git远程分支管理

使用分支的原则

  • master分支是非常重要的,线上发布代码用这个分支,平时我们开发代码不要在这个分支上
  • 创建一个dev分支,专门用作开发,只有当发布到线上之前,才会把dev分支合并到master
  • 开发人员应该在dev的基础上再分支成个人分支,个人分支里面开发代码,然后合并到dev分支

远程分支管理

在远程GitHub上创建dev分支

克隆远程GitHub仓库(只会克隆 apeng仓库中的master分支)

[root@localhost ~]# mkdir /remote
[root@localhost ~]# cd /remote
[root@localhost remote]# git clone https://github.com/apenglinux/apeng.git
[root@localhost remote]# ls
apeng
[root@localhost remote]# cd apeng/
[root@localhost apeng]# git branch 
* master

查看远程仓库的所有分支

[root@localhost apeng]# git ls-remote origin 
ec531a27522b5982a0d78efdddc836702e4d6498	HEAD
ec531a27522b5982a0d78efdddc836702e4d6498	refs/heads/dev
ec531a27522b5982a0d78efdddc836702e4d6498	refs/heads/master

克隆远程服务器apeng仓库中的dev分支,创建文件推送到远程服务端

[root@localhost apeng]# git checkout -b dev origin/dev 
分支 dev 设置为跟踪来自 origin 的远程分支 dev。
切换到一个新分支 'dev'
[root@localhost apeng]# echo "apeng-repository" > apeng-local-remote.file
[root@localhost apeng]# git add apeng-local-remote.file
[root@localhost apeng]# git commit -m "add apeng-local-remote.file"
[root@localhost apeng]# git push

本地分支和远程分支一致时,默认推送所有分支。下面就推送一个分支到服务器端

[root@localhost apeng]# git branch aling
[root@localhost apeng]# git checkout aling
[root@localhost apeng]# echo "branch-aling" > aling1.txt
[root@localhost apeng]# git add aling1.txt
[root@localhost apeng]# git commit -m "add aling1.txt"
[root@localhost apeng]# git push origin aling

在服务端查看

总结:

  • 本地新建的分支如果不推送到远程,对其他人是不可见的
  • 查看远程所有分支 git ls-remote origin
  • 当本地分支和远程分支一致时
  • git push 会所所有本地分支的变更一同推送到远程,如果只想推送一个分支,使用 git push origin branch-name
  • 当本地分支比远程分支多,默认 git push 只推送本地和远程一致的分支,想要多出来的本地分支推送到远程时,使用 git push origin branch-name 如果推送失败,先用 git pull抓取远程的新提交
  • git clone 的时候默认只把master分支克隆下来,如果想把所有分支都克隆下来,需要手动创建,在本地创建和远程分支对应的分支,使用 git checkout -b branch-name origin/branch-name,本地和远程分支的名称要一致