Git分支学习简记
简介
开始过了两遍Git的内容,第二天就已经忘记了分支(branch)的概念,开始还觉得不太用的到。然后又看了第二遍,才发现为什么大家说这个是Git里边极其重要的一个东西。
所谓branch,就类似于树的枝干,有一个主干,在Git里成为master,意思也很好理解;这个是必须存在的,然后你可以分出去其他的树干(但是都不是主干)。像树的分枝都会回到主干那里一样,Git里的分支也会汇聚到master那里。
比方我们现在有现成的代码,A想自己修改一下,但是不能直接改动,做法可以是copy过来修改一下,在Git里我们直接创建分支就可以了。再觉得完美了之后上传过去,这个时候直接合并分支就可以搞定了。
分支常用命令和功能介绍
通过git branch命令可以看到现在的分支情况,*代表我们目前所在的分支
# git branch
* master
test
可以看到我们有两个分支,有master还有一个test
通过git checkout test我们可以切换到test分支
#git checkout test
Switched to branch 'test'
#git branch
master
*test
通过git checkout -b xx命令我们可以创建xx分支,-b 代表创建并直接切换到xx分支
通过git merge xx可以把xx分支合并到master分支上
完成合并之后可以删除xx分支,使用git branch -d xx命令,需要注意的是合并的时候需要解决冲突(即内容不一致的问题)
下面通过一个完整的例子(代码高亮不理想,凑合看吧)演示一下:
::01wang@~/Documents/git >> git branch
master
* test
::11wang@~/Documents/git >> git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by commit.
(use "git push" to publish your local commits)
::21wang@~/Documents/git >> git branch
* master
test
::27wang@~/Documents/git >> ls
readme.txt Spoon-Knife test
::45wang@~/Documents/git >> cat readme.txt
master branch`
::51wang@~/Documents/git >> git checkout -b test1
Switched to a new branch 'test1'
::02wang@~/Documents/git >> git branch
master
test
* test1
::05wang@~/Documents/git >> ls
readme.txt Spoon-Knife test
::07wang@~/Documents/git >> vi readme.txt
::18wang@~/Documents/git >> git add readme.txt
::23wang@~/Documents/git >> git commit -m "branch test1"
[test1 3a09722] branch test1
file changed, insertions(+)
::38wang@~/Documents/git >> git checkout master
Switched to branch 'master'
Your branch is ahead of 'origin/master' by commit.
(use "git push" to publish your local commits)
::53wang@~/Documents/git >> git branch
* master
test
test1
::56wang@~/Documents/git >> git merge test1
Updating c7ac8a8..3a09722
Fast-forward
readme.txt | ++
file changed, insertions(+)
::02wang@~/Documents/git >> cat readme.txt
master branch` test1 branch
::07wang@~/Documents/git >> git branch -d test1
Deleted branch test1 (was 3a09722).
::18wang@~/Documents/git >> git branch
* master
test
Git分支学习简记的更多相关文章
- Git分支学习总结
思维导图: 总结: Git分支:分为2类合计为5种分支. 第一类:主分支和开发分支. 第二类:特性分支,热补丁分支,版本分支.
- git入门学习(二):新建分支/上传代码/删除分支
一.git新建分支,上传代码到新的不同分支 我要实现的效果,即是多个内容的平行分支:这样做的主要目的是方便统一管理属于同一个内容的不同的项目,互不干扰.如图所示: 前提是我的github上已经有we ...
- Git 学习之git 分支(三)
Git 分支 几乎每一种版本控制系统都以某种形式支持分支.使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作.在很多版本控制系统中,这是个昂贵的过程,常常需要创建一个源代码目录的 ...
- git学习——<五>git分支
git学习——<一>git安装 git学习——<二>git配置文件 git学习——<三>git操作 git学习——<四>git版本管理 一.提出问题 今 ...
- Git学习总结(12)——多人开发 Git 分支管理详解
1.前言 在上一篇博客中我们主要讲解了Git 远程仓库,相信大家对远程的Git仓库有一定的了解,嘿嘿.在这一篇博客中我们来在大家讲解一下Git 分支管理,这可以说是Git的又一大特点.下面我们就来学习 ...
- Git速成学习第六课:Bug分支
Git速成学习笔记整理于廖雪峰老师的官网网站:https://www.liaoxuefeng.com/ 当你接到一个修复代码为101的任务的时候,很自然的你想创建一个分支issue-101来修复它,但 ...
- Git速成学习第五课:分支管理策略
Git速成学习笔记整理于廖雪峰老师的官网网站:https://www.liaoxuefeng.com/ 通常合并分支时,如果可能用Fast forward模式,但是在这种模式下,删除分支后,会丢掉分支 ...
- Git速成学习第三课:创建与合并分支
本来第三课想记录一下远程仓库的创建与克隆0.0但是想了想还是不写了. 这里写一下分支管理中的创建与合并. Git速成学习笔记整理于廖雪峰老师的官网网站:https://www.liaoxuefeng. ...
- git分支管理与tag的学习笔记
git分支管理学习笔记:创建dev分支:git branch dev查看分支:git branch切换分支:git checkout dev创建并切换分支:git checkout dev -b zh ...
随机推荐
- ASP.NET MVC3入门教程之第一个WEB应用程序
本文转载自:http://www.youarebug.com/forum.php?mod=viewthread&tid=91&extra=page%3D1 上一节,我们已经搭建好了AS ...
- 遍历Arraylist的方法:
遍历Arraylist的几种方法: Iterator it1 = list.iterator(); while(it1.hasNext()){ System.out ...
- MD5加密与验证
package com.study; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException ...
- 前端 head 中mate 详解
<meta name="viewport" content="width=device-width,height=device-height,initial-sca ...
- SSH框架 sequence diagram
- 1118sync_binlog innodb_flush_log_at_trx_commit 浅析
转自 http://blog.itpub.net/22664653/viewspace-1063134/ innodb_flush_log_at_trx_commit和sync_binlog 两个参 ...
- 【BZOJ 2190】【SDOI 2008】仪仗队 欧拉筛
欧拉筛模板题 #include<cstdio> using namespace std; const int N=40003; int num=0,prime[N],phi[N]; boo ...
- 去掉iPhone、iPad的默认按钮样式 去掉高光样式:
input[type="button"], input[type="submit"], input[type="reset"] { -web ...
- 基于@Aspect的AOP配置
1. Spring 除了支持Schema 方式配置 AOP,还支持注解方式:使用 @Aspect 来配置 2. Spring 默认不支持 @Aspect 风格的切面声明,通过如下配置开启@Aspect ...
- Mybatis 操作数据库的主键自增长
本篇文章将研究mybatis 实现oracle主键自增的机制 首先我们看对于同一张student表,对于mysql,sql server,oracle中它们都是怎样创建主键的 在mysql中 crea ...