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 /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,本地和远程分支的名称要一致