参考:
-r表示remote, -a表示all, -b表示branch, -d表示delete, -u == --update -A == --all (全部) -m 参数表示可以直接输入后面的“message”,如果不加 -m参数,那么是不能直接输入message的, 而是会调用一个编辑器一般是vim来让你输入这个message,message即是我们用来简要说明这次提交的语句。常见的branch操作命令
//***************************** 增 ******************************
git branch branchname // 新建一个【本地分支】,但依然停留在当前分支
git checkout -b branchname // 创建【本地分支】并切换
//(= git branch branchname + git checkout branchname)
//***************************** 删 ******************************
git branch -d branchname // 删除【本地分支】,如果分支中有未merge的提交,会删除失败,
git branch -D branchname // 强制删除【本地分支】,如果分支中有未merge的提交,也被删除
git push origin -d branchname // 删除【远程分支】,用本地分支名,前面不加origin
git push --delete origin branchname
// 删除【远程分支】
git push origin :master //推送空到远程即为删除远程
# 等同于
git push origin --delete master
//***************************** 改 ******************************
git branch -m oldName newName //给【本地分支】重命名
//***************************** 查 ******************************
git branch // 查看【本地分支】
git branch -a // 查看【所有分支】
git branch -r // 查看【远程分支】
git branch -vv // 查看【本地分支】与【远程分支】关联关系
//***************************** 切换 ******************************
git checkout branchname // 切换【本地分支】为branchname
//***************************** 关联 ******************************
git merge branchname // 合并指定分支branchname到当前分支
git push origin 【local_branch_name】
// 推送【本地分支】到【远程分支】
git branch --set-upstream 【local_branch_name】 origin/【remote_branch_name】
// 【本地分支】关联【远程分支】
一、创建本地分支
git branch 分支名
//例如:
git branch dev
//这条命令是基于当前分支创建的本地分支,
//假设当前分支是master(远程分支),则是基于master分支创建的本地分支dev。
二、切换到本地分支
git checkout 分支名
//例如:
git checkout dev
//这条命令表示从当前master分支切换到dev分支。
三、【创建本地分支】并【切换为当前分支】
git checkout -b 分支名
//例如:
git checkout -b dev
//这条命令把创建本地分支和切换到该分支的功能结合起来了,
//即基于当前分支master创建本地分支dev并切换到该分支下。
注意:
步骤三相当于 步骤一和步骤二加起来的效果:
git checkout -b dev
//新建分支dev并切换到dev
//相当于以下两句:
git branch dev
//新建分支dev,但依然停留在当前分支master
git checkout dev
//切换分支到dev
四、提交本地分支到远程仓库
git push origin 本地分支名
//例如:
git push origin dev
//这条命令表示把本地dev分支提交到远程仓库,即创建了远程分支dev。
注:
要想和其他人分享某个本地分支,你需要把它推送到一个你拥有写权限的远程仓库。
你创建的本地分支不会因为你的写入操作而被自动同步到你引入的远程服务器上,你需要明确地执行推送分支的操作。
换句话说,对于无意分享的分支,你尽管保留为私人分支好了,而只推送那些协同工作要用到的特性分支。
五、新建本地分支与远程分支关联
拉取远端分支
git pull
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> dev
pull时发现,当前的分支并没有和本地分支关联,根据提示进行下一步:
git branch --set-upstream 本地新建分支名 origin/远程分支名
git branch --set-upstream-to origin/dev(远程分支名) dev(本地分支名)
//例如:
git branch --set-upstream dev origin/dev
//
//git branch --set-upstream-to=origin/dev
//git branch --set-upstream-to origin/dev
//把本地dev分支和远程dev分支相关联。
注:
本地新建分支, push到远程服务器上之后,使用git pull或者git pull 拉取或提交数据时会报错,
必须使用命令:git pull origin dev(指定远程分支);
如果想直接使用git pull或git push拉去提交数据就必须创建本地分支与远程分支的关联。
再次拉取 验证
git pull
六、【创建远程仓库】并【将本地与远程关联】
如果本地新建了一个分支 dev ,但是在远程没有。
这时候 push 和 pull 指令就无法确定该跟踪谁,一般来说我们都会使其跟踪远程同名分支,所以可以利用
git push --set-upstream origin dev
这样就可以自动在远程创建一个 dev 分支,然后本地分支会 track 该分支。
后面再对该分支使用 push 和 pull 就自动同步。
即:步骤六相当于 步骤四加步骤五的效果。
七、合并分支到master上
首先切换到master分支上
git checkout master
如果是多人开发的话需要把远程master上的代码pull下来,拉取最新代码
git pull origin master
然后我们把dev分支的代码合并到master上
git merge dev
然后查看状态
git status