git杂记-分支简介
- 分支创建
//只创建分支不切换;
$ git branch testing //创建并切换分支$ git checkout -b iss53
- 查看各个分支的指向对象
$ git log --oneline --decorate
//当前 “master” 和 “testing” 分支均指向校验和以
f30ab (HEAD, master, testing) add feature #32 - ability to add new
34ac2 fixed bug #1328 - stack overflow under certain conditions
98ca9 initial commit of my projectf30ab
开头的提交对象。 - 分支切换
$ git checkout testing
- 查看项目交叉历史
$ git log --oneline --decorate --graph --all
* c2b9e (HEAD, master) made other changes
| * 87ab2 (testing) made a change
|/
* f30ab add feature # - ability to add new formats to the
* 34ac2 fixed bug # - stack overflow under certain conditions
* 98ca9 initial commit of my project - 合并分支,在当前分支合并某某分支
1:如果当前分支是合并目标分支的直接祖先,就可以使用快速合并,当前分支的指针直接移动到目标分支; 例如:master分支合并hotfix分支
$ git checkout master
$ git merge hotfix
Updating f42c576..3a0874c
Fast-forward
index.html | ++
file changed, insertions(+) 2:如果当前分支并不是合并目标分支的直接祖先,Git不得不做一些额外的工作。出现这种情况的时候,Git会使用两个分支的末端所指的快照(C4
和C5
)以及这两个分支的工作祖先(C2
),做一个简单的三方合并。 例如:master分支合并iss53分支 - 删除分支
//删除hotfix分支
$ git branch -d hotfix
Deleted branch hotfix (3a0874c). - 合并的冲突处理方案
//合并分支时产生冲突,指示index.html文件有冲突
$ git merge iss53
Auto-merging index.html
CONFLICT (content): Merge conflict in index.html
Automatic merge failed; fix conflicts and then commit the result.//观察文件状态
$ git status
On branch master
You have unmerged paths.
(fix conflicts and run "git commit") Unmerged paths:
(use "git add <file>..." to mark resolution) both modified: index.html no changes added to commit (use "git add" and/or "git commit -a")//使用工具打开冲突的文件 <<<<<<< HEAD:index.html
<div id="footer">contact : email.support@github.com</div>
=======
<div id="footer">
please contact us at support@github.com
</div>
>>>>>>> iss53:index.html//把文件手工修改为我们想要的内容
<div id="footer">
please contact us at email.support@github.com
</div> //重新添加到暂存库
git add index.html //重新添加到版本库
git commit -m '解决冲突文件index.html' - 查看所有的分支列表
$ git branch
iss53
* master
testing *代表的是当前的分支 - 查看每个分支的最后一次提交
$ git branch -v
iss53 93b412c fix javascript issue
* master 7a98805 Merge branch 'iss53'
testing 782fd34 add scott to the author list in the readmes - 筛选哪些分支已经合并到当前分支,哪些分支没有合并到当前分支
//查看哪些分支已经合并到当前分支; 使用git branch -d iss53可以正常删除已合并的分支;
$ git branch --merged
iss53
* master //查看哪些分支目前还没有合并到当前分支;使用git branch -d testing不能正常删除没有被合并的分支,需用git branch -D testing强制删除
$ git branch --no-merged
testing - 分支开发工作流
- 长期分支
- 特性分支
- 长期分支
- 远程分支
- 远程分支的存在方式
- 以
(remote)/(branch)
形式命名,例如:origin/master
- 以
- 克隆之后的服务器与本地仓库
- 系统一个本地分支会对应一个远程分支,默认状况下会一一对应。
- 更新本地仓库的远程分支
//远程主机的所有更新全部拉取到本地中;只拉取,不会自动合并;相当于origin/master只读分支不断向前走动
$ git fetch <远程主机名> //只拉取特定的分支
$ git fetch <远程主机名> <分支名> //拉取并自动合并
$ git pull <远程主机名> - 推送分支
//推送serverfix分支
$ git push origin serverfix
Counting objects: , done.
Delta compression using up to threads.
Compressing objects: % (/), done.
Writing objects: % (/), 1.91 KiB | bytes/s, done.
Total (delta ), reused (delta )
To https://github.com/schacon/simplegit
* [new branch] serverfix -> serverfix - 在远程分支的基础上进行工作
- 合并远程分支
git merge origin/serverfix
- 在远程分支上创建一个分支
$ git checkout -b serverfix origin/serverfix
Branch serverfix set up to track remote branch serverfix from origin.
Switched to a new branch 'serverfix'
- 合并远程分支
- 跟踪分支
//当运行fetch的时候,本地分支
sf(新建)
会自动从origin/serverfix
拉取。
$ git checkout -b sf origin/serverfix
Branch sf set up to track remote branch serverfix from origin.
Switched to a new branch 'sf' //设置本地已有的分支(当前分支)跟踪刚刚拉取下来的一个分支$ git branch -u origin/serverfix
- 列出所有的跟踪分支,并指出本地分支是否是领先、落后。
$ git branch -vv
iss53 7e424c3 [origin/iss53: ahead ] forgot the brackets //超前两个提交
master 1ae2a45 [origin/master] deploying index fix //与远程分支同步
* serverfix f8674d9 [teamone/server-fix-good: ahead , behind ] this should do it //超前三个提交,落后一个提交
testing 5ea463a trying something new //没有跟踪任何远程分支; - 删除远程分支
$ git push origin --delete serverfix
To https://github.com/schacon/simplegit
- [deleted] serverfix
- 远程分支的存在方式
git杂记-分支简介的更多相关文章
- Git分支-分支简介
源地址:https://git-scm.com/book/zh/ch3-1.html 几乎所有的版本控制系统都以某种形式支持分支. 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线 ...
- 7.Git分支-分支简介、分支创建、分支切换
1.分支简介 几乎所有的版本控制系统都支持某种形式的分支.使用分支意味着可以把你的工作从开发主线上分离开来,以免影响开发主线.Git的分支是其必杀技,它相对于其它版本控制系统来说,具有难以置信的轻量性 ...
- Git(12)-- Git 分支 - 分支简介
@ 目录 1.分支简介 1.1.初始化并首次提交 首次提交对象及其树结构: git 的 cat-file 的命令用法: 1.2.修改并第二次提交 第二次提交对象及其树结构: 1.3.修改并第三次提交 ...
- git分支简介,理解HEAD,master
为了真正理解 Git 处理分支的方式,我们需要回顾一下 Git 是如何保存数据的. 或许你还记得 起步 的内容,Git 保存的不是文件的变化或者差异,而是一系列不同时刻的文件快照. 在进行提交操作时, ...
- Git 系列教程(11)- 分支简介
前言 很多版本控制系统都有分支这个概念 使用分支意味着可以将日常工作从主线上脱离,从而避免影响主线 Git 鼓励在工作流程中频繁使用分支和合并 Git 是如何保存数据的 Git 保存的不是文件的变化或 ...
- git入门-分支
1. git分支简介 使用分支可以让你从开发主线上分离开来,然后在新的分支上解决特定问题,同时不会影响主线.像其它的一些版本控制系统,创建分支需要创建整个源代码目录的副本.而Git 的分支是很轻量级的 ...
- 好代码是管出来的——Git的分支工作流与Pull Request
上一篇文章介绍了常用的版本控制工具以及git的基本用法,从基本用法来看git与其它的版本控制工具好像区别不大,都是对代码新增.提交进行管理,可以查看提交历史.代码差异等功能.但实际上git有一个重量级 ...
- git branch 分支
几乎所有的版本控制系统都以某种形式支持分支. 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线. 在很多版本控制系统中,这是一个略微低效的过程——常常需要完全创建一个源代码目录的副 ...
- Git Flow 分支管理简述
概述 Git 是什么 Git 是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目. Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的 ...
随机推荐
- 常见的http错误提示
1xx(临时响应)表示临时响应并需要请求者继续执行操作的状态代码. 代码 说明100 (继续) 请求者应当继续提出请求.服务器返回此代码表示已收到请求的第一部分,正在等待其余部分. 101 (切换协议 ...
- Python全栈开发:list、元祖常用方法操作
列表[] 索引与切片#例题#li = ['yijiajun',[1,3,5,7,9],'zhangliang','zhaoritian','sunwukong'] # #例子1 找出列表中索引为0的元 ...
- vue-cli3预设preset记录
这两天公司搭建新项目的时候发现vue-cli3有一个神奇的的东西:preset(预设).preset其实是你在create新vue项目的时候,生成的插件配置项预设,也就是你在项目中需要用到的插件安装成 ...
- [黑科技]跑的比fread还快的cin挂和cout挂
CCPC赛后摸鱼搞了个新的奇怪外挂 这里贴上利用sgetn和sputn来实现的读入读出挂,理论上比fread更优 期望在赛中TLE的代码能强行卡过去hhh 利用小规模的Codeforces - 103 ...
- Groovy 反序列化漏洞分析(CVE-2015-3253)
0x00 前言 Java反序列化的漏洞爆发很久了,此前一直想学习一下.无奈Java体系太过于复杂,单是了解就花了我很久的时间,再加上懒,就一直拖着,今天恰好有空,参考@iswin大佬两年前的分析, ...
- 使用nginx+uwsgi+Django环境部署
环境准备 Python点这里 nginx点这里 uwsgi点这里
- basic algorithm- 20190416-20190425
binary search 14.https://www.lintcode.com/problem/first-position-of-target/description 74.https://ww ...
- python爬虫常用之Scrapy 简述
一.安装 pip install scrapy. 如果提示需要什么包就装什么包 有的包pip安装不起,需要自己下载whl文件进行安装. 二.基本的爬虫流程 通用爬虫有如下几步: 构造url --> ...
- android开发中的BaseAdapter之理解(引用自网络,总结的很好,谢谢)
android中的适配器(Adapter)是数据与视图(View)之间的桥梁,用于对要显示的数据进行处理,并通过绑定到组件进行数据的显示. BaseAdapter是Android应用程序中经常用到的基 ...
- 如何快速将文本中的tab更换成逗号(图文详解)
不多说,直接上干货! 现有一份数据如下. 下载日志数据并分析 到搜狗实验室下载用户查询日志 1) 介绍 搜索引擎查询日志库设计为包括约1个月(2008年6月)Sogou搜索引擎部分网页查询需求及用户点 ...