博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Git】本地分支
阅读量:5224 次
发布时间:2019-06-14

本文共 3257 字,大约阅读时间需要 10 分钟。

【Git】本地分支

转载:

目录

=================================

=================================

1、查看分支列表

本地分支

$ git branch   dev* master

分支前的 * 字符:它代表现在所处的分支(也就是说,当前 HEAD 指针所指向的分支)。

远程分支

$ git branch -r   origin/master  origin/nb

所有分支(本地和远程)

$ git branch -a * master  nb  remotes/origin/master  remotes/origin/nb

分支前的 * 字符:它代表现在所处的分支(也就是说,当前 HEAD 指针所指向的分支)。

分支名及校验和

$ git branch -v

已合并分支

$ git branch --merged  dev* master

在这个列表中分支名字前没有 * 号的分支通常可以使用 git branch -d 删除掉;你已经将它们的工作整合到了另一个分支,所以并不会失去任何东西。

未合并分支

$ git branch --no-mergedissue-1

还未合并的尝试使用 git branch -d 命令删除它时会失败:

$ git branch -d issue-1error: The branch 'issue-1' is not fully merged.If you are sure you want to delete it, run 'git branch -D issue-1'.

如果真的想要删除分支并丢掉那些工作,如同帮助信息里所指出的,可以使用 -D 选项强制删除它。

$ git branch -D issue-1Deleted branch issue-1 (was 0734b29).

 

2、切换分支

$ git checkout dev

注意:分支切换会改变你工作目录中的文件

 

3、删除分支

$ git branch -d dev $ git branch --delete dev

 

没有合并时无法删除,强制删除

$ git branch -d -f dev$ git branch --delete --force dev

简写,Shortcut for --delete --force.

$ git branch -D dev

强制删除,没有合并也会删除,谨慎使用

 

4、创建分支

4.1、新建分支并留在当前分支

$ git branch dev

4.2、新建分支同时切换到新分支

$ git checkout -b dev

4.3、使用服务器分支,新建分支同时切换到新分支

$ git fetch origin 或者 git fetch$ git checkout -b server_branch origin/server_branch

注意:git fetch 命令必须执行。执行完成后,你将会拥有那个远程仓库中所有分支的引用,可以随时合并或查看。

查看分支对象

$ git log --oneline --decorate

参数:--oneline,显示在一行

参数 --decorate,查看各个分支当前所指的对象

 

5、合并分支

5.1、快进合并

例:把dev合并到master,注意合并前其他分支都提交完了。首先切换到master分支,然后使用 git merge 命令把dev分支合并到主分支上

$ git checkout master$ git merge devUpdating 9525a36..1bfbd70Fast-forward book.java | 1 + 1 file changed, 1 insertion(+)

在合并的时候,你应该注意到了"快进(fast-forward)"这个词。 由于当前 master 分支所指向的提交是你当前dev提交的直接上游,所以 Git 只是简单的将指针向前移动。 换句话说,当你试图合并两个分支时,如果顺着一个分支走下去能够到达另一个分支,那么 Git 在合并两者的时候,只会简单的将指针向前推进(指针右移),因为这种情况下的合并操作没有需要解决的分歧——这就叫做 “快进(fast-forward)”。

5.2、典型三个快照的合并

$ git checkout master$ git merge devMerge made by the 'recursive' strategy. home.html  | 1 + index.html | 1 + 2 files changed, 2 insertions(+) create mode 100644 home.html create mode 100644 index.html

和之前将分支指针向前推进所不同的是,Git 将此次三方合并的结果做了一个新的快照并且自动创建一个新的提交指向它。 这个被称作一次合并提交,它的特别之处在于他有不止一个父提交。

需要指出的是,Git 会自行决定选取哪一个提交作为最优的共同祖先,并以此作为合并的基础。 Git 的这个优势使其在合并操作上比其他系统要简单很多。

5.3、遇到冲突的合并

例:

master 分支编辑index.html内容如下,然后提交
index.html master
dev 分支编辑index.html内容如下,然后提交
index.html dev
合并

$ git checkout master$ git merge devAuto-merging index.htmlCONFLICT (content): Merge conflict in index.htmlAutomatic merge failed; fix conflicts and then commit the result.

显示有冲突,编辑冲突文件

$ vim index.html<<<<<<< HEADindex.html master=======index.html dev>>>>>>> dev

冲突内容使用<<<<<<<,=======,>>>>>>>完全隔开了。上半部分是HEAD也就是master分支,下半部分是dev分支。

$ vim index.html

手动解决冲突部分如下,然后 git add index.html

index.html master

 然后提交 git commit -m '注解'

 

6、跟踪分支

6.1、查看分支跟踪

$ git branch -vv

6.2、设置分支跟踪

格式:二选一

git branch -u 远程库名/远程分支名

git branch --set-upstream-to=远程库名/远程分支名

$ git branch -u origin/dev $ git branch --set-upstream-to=origin/dev

远程分支名必须存在,否则error: the requested upstream branch 'origin/b2' does not exist

6.3、取消分支跟踪

$ git branch --unset-upstream 本地分支名

 

7、创建跟踪分支

新建一个分支并且和远程分支建立跟踪关系

格式:二选一

git branch -t 本地分支名 远程库名/远程分支名

git branch --track 本地分支名 远程库名/远程分支名

$ git branch -t dev origin/dev$ git branch --track dev origin/dev

 

转载于:https://www.cnblogs.com/yangchongxing/p/10221382.html

你可能感兴趣的文章
gvim编辑器_vimrc文件
查看>>
Python 文本处理的应用
查看>>
创私有的应用程序文件openFileInput()和openFileOutput()
查看>>
javascript事件捕获与冒泡
查看>>
几种重要的网络演化模型
查看>>
跟我一起写 Makefile——1.1 概述
查看>>
越人歌
查看>>
软件测试——性能测试总结
查看>>
PycharmV2017 1.x使用说明手册
查看>>
HYPERSPECTRAL IMAGE CLASSIFICATION USING TWOCHANNEL DEEP CONVOLUTIONAL NEURAL NETWORK阅读笔记
查看>>
Freemarker 中的哈希表(Map)和序列(List)
查看>>
ECMAScript学习笔记
查看>>
Ubuntu 16.04安装Synaptic Package Manager图形化APT管理工具
查看>>
找回Reshaprer的Alt+Enter快捷键的方法
查看>>
Spring基于注解的配置概述
查看>>
POJ 2513 Colored Sticks 解题报告
查看>>
R语言内存管理
查看>>
【hive】函数大全
查看>>
tcp 3次握手四次挥手
查看>>
vnc远程运行3D游戏
查看>>