【Git】本地分支
【Git】本地分支
转载:https://www.cnblogs.com/yangchongxing/p/10221382.html
目录
=================================
=================================
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-merged
issue-
还未合并的尝试使用 git branch -d 命令删除它时会失败:
$ git branch -d issue-
error: 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-
Deleted branch issue- (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 dev
Updating 9525a36..1bfbd70
Fast-forward
book.java | +
file changed, insertion(+)
在合并的时候,你应该注意到了"快进(fast-forward)"这个词。 由于当前 master 分支所指向的提交是你当前dev提交的直接上游,所以 Git 只是简单的将指针向前移动。 换句话说,当你试图合并两个分支时,如果顺着一个分支走下去能够到达另一个分支,那么 Git 在合并两者的时候,只会简单的将指针向前推进(指针右移),因为这种情况下的合并操作没有需要解决的分歧——这就叫做 “快进(fast-forward)”。
5.2、典型三个快照的合并
$ git checkout master
$ git merge dev
Merge made by the 'recursive' strategy.
home.html | +
index.html | +
files changed, insertions(+)
create mode home.html
create mode index.html
和之前将分支指针向前推进所不同的是,Git 将此次三方合并的结果做了一个新的快照并且自动创建一个新的提交指向它。 这个被称作一次合并提交,它的特别之处在于他有不止一个父提交。
需要指出的是,Git 会自行决定选取哪一个提交作为最优的共同祖先,并以此作为合并的基础。 Git 的这个优势使其在合并操作上比其他系统要简单很多。
5.3、遇到冲突的合并
例:
master 分支编辑index.html内容如下,然后提交
index.html master
dev 分支编辑index.html内容如下,然后提交
index.html dev
合并
$ git checkout master
$ git merge dev
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.
显示有冲突,编辑冲突文件
$ vim index.html
<<<<<<< HEAD
index.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
【Git】本地分支的更多相关文章
- git 本地分支与远程分支
github上已经有master分支 和dev分支 在本地 git checkout -b dev 新建并切换到本地dev分支 git pull origin dev 本地分支与远程分支相关联 在本地 ...
- git 本地分支与远程分支关联的一种方法
github上已经有master分支 和dev分支 在本地 git checkout -b dev 新建并切换到本地dev分支 git pull origin dev 本地分支与远程分支相关联 在本地 ...
- Git本地分支版本号过低导致的push错误 error: failed to push some refs to ... 及兴许amend
今天在用git的时候遇到了一个问题.在想远程分支push的时候,出现了以下的错误: ! [remote rejected] master -> refs/for/master (change 1 ...
- git本地分支与远程分支
github上已经有master分支 和dev分支 在本地 git checkout -b dev 新建并切换到本地dev分支 git pull origin dev 本地分支与远程分支相关联 在本地 ...
- git 本地分支和远程分支改名字
1.将本地分支进行改名: git branch -m old_branch new_branch 2.将本地分支的远程分支删除: git push origin :old_branch 3.将改名后的 ...
- Git本地分支和远程分支关联
转载:https://blog.csdn.net/cherishhere/article/details/52606884 转载:https://blog.zengrong.net/post/1746 ...
- 怎么删除git本地分支以及Bitbucket的远程分支?
1. 如果分支只是本地分支,则可以使用 -d (如果分支已合并),例如 git branch -d <branch name>如果分支包含不计划合并的代码,请改用 -D (即使有没有mer ...
- git本地分支和远程分支改名
#1 将本地分支进行改名 git branch -m old_branch new_branch #2 将远程分支的老分支删除 git push origin :old_branch #3 将改名后的 ...
- git本地分支关联远程分支
问题描述: 从远程master克隆下来以后, 在本地创建wf_dev分支, 此时执行git pull 操作出现图中问题. 这是因为:本地的wf_dev分支还没有和远程的wf_dev进行关联. 执行: ...
- git本地分支重命名
1. 本地分支重命名 git branch -m oldbranchname newbranchname 2. 远程分支重命名 (假设本地分支和远程对应分支名称相同) a. 重命名远程分支对应的本地分 ...
随机推荐
- 力扣(LeetCode)两整数之和 个人题解
不使用运算符 + 和 - ,计算两整数 a .b 之和. 示例 1: 输入: a = 1, b = 2 输出: 3 示例 2: 输入: a = -2, b = ...
- MySQL 1364 错误提示:#1364 - Field "details" doesn't have a default value
原因:mysql字段设计的时候为not null,结果此字段没有插入值,解决方法: 运行以下命令. SET @@GLOBAL.sql_mode="NO_AUTO_CREATE_USER,NO ...
- python2中的SSL:CERTIFICATE_VERIFY_FAILED错误的解决办法
在使用urllib2访问一个自签名的https链接时,对于python2.6以下版本,TLS握手期间是不会检查服务器X509的证书签名是否是CA的可信任根证书.不过python2.7以后改变了这种情况 ...
- JavaWeb03-请求和响应
请求响应流程图 response 1 response概述 response是Servlet.service方法的一个参数,类型为javax.servlet.http.HttpServl ...
- 元数据管理的重要性 - xms
什么是元数据?引用百科的描述就是:元数据(Metadata),又称中介数据.中继数据,为描述数据的数据(data about data),主要是描述数据属性(property)的信息: 看起来有点抽象 ...
- JavaScript笔记九
1.数组方法 reverse() - 可以用来反转一个数组,它会对原数组产生影响 concat() - 可以连接两个或多个数组,它不会影响原数组,而是新数组作为返回值返回 join() - 可以将一个 ...
- day 12 函数名的应用 闭包 迭代器
今日主要内容 1, 函数名的应用,第一类对象 函数名可以像变量一样进行使用 #再函数名后面添加() 才是对函数的调用, 否则打印的是函数的内存地址 1.赋值 2.作为list元素 3.作为参数 d ...
- 使用IDEA创建SpringMVC项目
作为一名从.NET转Java的小渣渣,之前都是听说Java配置复杂,今天算是见识到了.甚是怀念宇宙第一IDE VS和.NET高效的开发. 网上大多教程是基于Eclipse的,即使按照IDEA的教程做, ...
- 音频工具kaldi部署及模型制作调研学习
语音识别简介 语音识别(speech recognition)技术,也被称为自动语音识别(英语:Automatic Speech Recognition, ASR).计算机语音识别(英语:Comput ...
- 2019年12月2日Linux开发手记
开始学习在Linux下视频源捕获驱动框架,也就是V4L2(video4linux),本次关于v4l2的知识准备主要在于其的官方例程,理解官方例程也就差不多掌握了v4l2的基本内容.例程在:http:/ ...