Git 常用命令 - Branch

[b]概念[/b]
Git 中的分支,其实本质上仅仅是个指向 commit 对象的可变指针。Git 会使用 master 作为分支的默认名字。

[b]显示所有分支[/b]
$ git branch 
branch_test
branch_test2
* master
说明:* 代表当前工作分支

[b]创建分支[/b]
$ git branch <branch name>
[color=red][b]注意:[/b][/color]运行 git branch 命令,仅仅是建立了一个新的分支,但不会自动切换到这个分支中去,所以在这个例子中,我们依然还在 master 分支里工作。

[b]说明:[/b]Git 是如何知道你当前在哪个分支上工作的呢?其实答案也很简单,它保存着一个名为 HEAD 的特别指针。请注意它和你熟知的许多其他版本控制系统(比如 Subversion 或 CVS)里的 HEAD 概念大不相同。在 Git 中,它是一个指向你正在工作中的本地分支的指针(译注:将 HEAD 想象为当前分支的别名。)。

[b]切换分支[/b]
$ git checkout <branch name>
此时,HEAD 就指向了指定的分支。

[b]新建并切换到该分支[/b]
$ git checkout -b <branch name>
这相当于执行下面这两条命令:
$ git branch <branch name>
$ git checkout <branch name>

[b]查看各个分支最后一次提交对象的信息[/b]
$ git branch -v
branch_test fd0a4a0 add branch_visible.txt
branch_test2 1376712 add branch2.txt
* master fd0a4a0 add branch_visible.txt

[b]删除分支[/b]
$ git branch -d <branch name>

[b]列出已经与当前分支合并的分支[/b]
$ git branch --merged 
branch_test
* master
[b]说明:[/b]一般来说,列表中没有 * 的分支通常都可以用 git branch -d 来删掉。原因很简单,既然已经把它们所包含的工作整合到了其他分支,删掉也不会损失什么。

[b]列出尚未与当前分支合并的分支[/b]
$ git branch --no-merged 
branch_test2
[b]说明:[/b]由于该分支中还包含着尚未被合并进来的其它分支,所以简单地用 git branch -d 删除尚未被合并进来的分支时会提示错误,因为这样做会造成数据丢失:
$ git branch -d branch_test2
error: 分支 'branch_test2' 没有完全合并。
如果您确认要删除它,执行 'git branch -D branch_test2'。
不过,如果你确实想要删除该分支上的改动,可以用大写的删除选项 -D 强制执行,就像上面提示信息中给出的那样。

[b]合并分支[/b]
$ git merge <branch name>
假如希望把分支(branch_test)上的代码合并到主干(master)上,可以按如下步骤进行:
1. 切换到 master 分区
2. 执行如下命令进行合并操作:
$ git merge branch_test
更新 5773b62..fd0a4a0
Fast-forward
branch_visible.txt | 0
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 branch_visible.txt

[b]创建远程分支(将本地分支 push 到远程)[/b]
$ git push <remote> <local branch name>[:remote branch name]
例如,将本地的 branch_test 分支上传到远程仓库,远程分支的名字仍叫 branch_test:
$ git push origin branch_test(相当于 git push origin branch_test:branch_test)
Username for 'url': <your user name>
Password for 'url': <your password>
对象计数中: 3, 完成.
Delta compression using up to 4 threads.
压缩对象中: 100% (2/2), 完成.
写入对象中: 100% (3/3), 295 bytes | 0 bytes/s, 完成.
Total 3 (delta 0), reused 0 (delta 0)
To <git url>
* [new branch] branch_test -> branch_test

[b]删除远程分支[/b]
$ git push <remote> :<branch name>
例如:
$ git push origin :branch_test3
Username for 'url': <your user name>
Password for 'url': <your password>
To <git url>
- [deleted] branch_test3
更加完整的写法如下:
$ git push origin :heads/branch_test2
Username for 'url': <your user name>
Password for 'url': <your password>
To <git url>
- [deleted] branch_test2

[b]参考文献:[/b]
[url]https://git-scm.com/book/zh/v1/Git-%E5%88%86%E6%94%AF[/url]
[url]http://www.cnblogs.com/springbarley/archive/2012/11/03/2752984.html[/url]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值