一、git checkout -b git_doc;#创建本地分支
git push origin git_doc;#分享到远程仓库
git fetch origin;#获取远程仓库的所有信息
git checkout -t origin/git_doc;# 其他开发人员基于origin/git_doc创建本地分支
git branch --set-upstream git_doc origin/git_doc;# make an existing local branch to track a remote branch#为本地分支建立远程跟踪
git pull;获取远程仓库的信息,并自动合并
git checkout master;合并分支到主干
git merge origin/git_doc
git push origin master
git push origin :git_doc;# 删除远程分支
git branch -d git_doc;# 删除本地分支
二、git branch
git branch不带参数:列出本地已经存在的分支,并且在当前分支的前面加“*”号标记,例如:
#git branch
* master
newbranch
git branch -r列出远程分支,例如:
#git branch -r
m/master -> origin_apps/m1_2.3.4
origin_apps/hardware/test
origin_apps/m1
origin_apps/m1_2.3.4
origin_apps/master
git branch -a列出本地分支和远程分支,例如:
#git branch -a
* master
newbranch
remotes/m/master -> origin_apps/m1_2.3.4
remotes/origin_apps/hardware/test
remotes/origin_apps/m1
remotes/origin_apps/m1_2.3.4
remotes/origin_apps/master
git branch创建一个新的本地分支,需要注意,此处只是创建分支,不进行分支切换,例如:
#git branch newbranch2
#git branch
* master
newbranch
newbranch2
当前的分支依然是master,不进行切换。
git branch -m | -M oldbranch newbranch重命名分支,如果newbranch名字分支已经存在,则需要使用-M强制重命名,否则,使用-m进行重命名。
git branch -d | -D branchname删除branchname分支
git branch -d -r branchname删除远程branchname分支
例子:
git help branch中的一个例子:
$ git clone git://git.kernel.org/pub/scm/.../Linux-2.6 my2.6
$ cd my2.6
$ git branch my2.6.14 v2.6.14
$ git checkout my2.6.14
第三行符合git branch []的格式,即以v2.6.14为start-point,创建新的本地分支branchname。
三、Git fetch和git pull的区别
Git中从远程的分支获取最新的版本到本地有这样2个命令:
1.$ git fetch <远程主机名> <分支名>:相当于是从远程获取最新版本到本地,不会自动merge
git fetch origin master //取回origin主机的master分支
git log-p master..origin/master
git merge origin/master
以上命令的含义:
首先从远程的origin的master主分支下载最新的版本到origin/master分支上
然后比较本地的master分支和origin/master分支的差别
最后进行合并
上述过程其实可以用以下更清晰的方式来进行:
git fetch origin master:tmp
git diff tmp
git merge tmp
从远程获取最新的版本到本地的test分支上
之后再进行比较合并
2.git pull:相当于是从远程获取最新版本并merge到本地
git pull origin master
上述命令其实相当于git fetch 和 git merge
在实际使用中,git fetch更安全一些
因为在merge前,我们可以查看更新情况,然后再决定是否合并