git分支创建分支删除分支合并

本文git版本1.9.6

一、创建分支,删除分支

二、创建分支,合并分支,删除分支

三、创建分支,git 3-way merge,删除分支

git branch 相关命令

git branch # 列出目前有多少branch
git branch new-branch # 产生新的branch (名称: new-branch), 若没有特别指定, 会由目前所在的branch / master 直接复制一份.
git branch new-branch master # 由master 产生新的branch(new-branch)
git branch new-branch v1 # 由tag(v1) 产生新的branch(new-branch)
git branch -d new-branch # 删除new-branch
git branch -D new-branch # 强制删除new-branch
git checkout -b new-branch test # 产生新的branch, 并同时切换过去new-branch
# 与remote repository 有关
git branch -r # 列出所有Repository branch
git branch -a # 列出所有branch

1、创建分支,删除分支

1.1、创建branch

1.2、切换到新的branch;Testbranch

在切换过程中HEAD执行变化如图:

也就是说虽然切换后HEAD指向了Testbranch,可是Testbranch还是和master一样指向了最后一次的commit;

验证如下:

切换后的HEAD

1.3、切换回master,进行验证,并删除Testbranch

删除Testbranch,并且分支索引文件也不存在了。

2、创建分支,合并分支,删除分支

2.1、查看当前master的最后commit log ;创建分支Testbranch

2.2、在当前分支修改code,并且进行commit,查看当前commit log;

2.3、切换回master,查看commit log 合并分支,查看commit log ;并删除分支Testbranch,查看 commit log;

Tips:

为什么要合并后再删除Testbranch呢?

在master 分支,他对应的最后索引为last commit,

而在Testbranch分支,他对应的最后索引为他刚刚的commit,我们假设为B;

如果我们强制将在Master分支删除分支Testbranch,那么Testbranch分支刚刚的commit就无效了;所以我们要先合并Testbranch后,在进行删除,合并后索引如图:

可以从上面的commit log 看出;

3、创建分支,git 3-way merge,删除分支

Ps:上面创建了分支,并且在分支修改code,,进行提交,如果在分支进行修改code,并且在master进行修改code呢?

3.1、查看master分支commit log ,创建Testbranch分支,查看commit log ,两次修改code,分别进行commit,查看commit log;

$ echo "print \"Test1\"" >> hello.pl
$ git commit -am "test1"
$ echo "print \"Test2\"" >> hello.pl
$ git commit -am "test2"

3.2、切换至master,查看commit log;修改code,进行commit;查看commit log;

3.3、将Testbranch进行合并;删除Testbranch

$ git merge Testbranch
$ git branch -d Testbranch
Deleted branch Testbranch (was ec4c4ba).
时间: 2024-10-10 21:59:46

git分支创建分支删除分支合并的相关文章

git 创建以及删除分支

git branch  查看所有的分支 git branch XXX  创建XXX分支 git  checkout  XXX 切换到XXX分支 git branch -d  XXX  删除分支 git checkout -b XXX  创建XXX分支 并 切换过去

git本地创建多个分支

git本地创建多个分支,互不干扰. 情景:在做某个需求a时,先需要修改紧急bug b (1)本地已有分支dev_a(关联远程分支的dev_a),先commit.(这步很重要) (1)远程创建分支dev_bug (2)在本地创建dev_bug,关联远程分支dev_bug (3)在本地dev_bug上修改bug,并commit.push到远程dev_bug上 (4)在本地变换到dev分支并pull拉取远程dev(保持和远程dev同步),然后再拉取远程dev_bug (5)本地dev commit,p

git创建、删除分支

//创建分支 git branch branchname //创建并切换到新分支 git checkout -b branchname //远程分支 git push origin branchname //查看远程分支 git branch -r //删除本地分支 git branch -d branchname //删除远程分支 git push origin :branchname 原文地址:https://www.cnblogs.com/sea-stream/p/10361273.htm

svn 命令行创建和删除 分支和tags

创建分支 svn cp -m "create branch" http://svn_server/xxx_repository/trunk http://svn_server/xxx_repository/branches/br_feature001 获得分支 svn co http://svn_server/xxx_repository/branches/br_feature001 合并主干上的最新代码到分支上 cd br_feature001 svn merge http://sv

git切换分支冲突解决-删除分支

在项目开发中,有多个版本分支需要不时的来回切换,在切换的过程中,产生了很多冲突,提交的时候 也提交不了.总结下在解决这个过程中使用的两种方法: 1.删除项目在磁盘的目录,包括 git 文件,重新 clone 一遍,保存到本地,然后导入到开发工具中. 2.本地目录下分支多,切换时产生冲突,切换到一个没有问题或不再使用的分支.然后删除有问题的分支, 再checkout 一遍对应的分支,即可. 删除分支的命令为:  删除本地分支: git branch -d devexception 强制删除,git

git 常用命令 创建查看删除分支,创建查看删除tag等

1. git 文档 https://github.com/progit/progit/blob/master/zh/02-git-basics/01-chapter2.markdown https://github.com/progit/progit/tree/master/zh http://www.uml.org.cn/pzgl/201204285.asp 如果是windows操作系统,可以装可视化的版本控制器:小乌龟.这样的话就不用敲git命令了.小乌龟安装配置如下: http://blo

链表 创建 插入 删除 查找 合并

最近学习了一下单链表的操作,将代码保存如下,供以后查看. 链表创建: 1.先建立一个不含数据的头指针*head,头指针的链接域为NULL. 2.声明一个用于暂存新申请空间的指针*pc,一个用于保存创建的链表的指针*r,令*r指向*head. 3.在循环中,为指针*pc申请空间,并给数据域赋值,head->next = pc, pc->next = NULL, head = pc. #define _CRT_SECURE_NO_DEPRECATE /*取消scanf,printf不安全之类的错误

Git 分支创建

分支策略:git上始终保持两个分支,master分支与develop分支.master分支主要用于发布时使用,而develop分支主要用于开发使用. 创建master的分支developgit checkout -b develop master 切换到master分支git checkout master 合并develop分支到mastergit merge --no-ff develop 除了以上两个常驻分支外,我们还可以适当分支出三种分支:功能分支.预发布分支.修补分支,这三种分支使用完

《Pro Git》笔记3:分支基本操作

<Pro Git>笔记3:Git分支基本操作 分支使多线开发和合并非常容易.Git的分支就是一个指向提交对象的可变指针,极其轻量.Git的默认分支为master. 1.Git数据存储结构和分支 git提交时会将暂存文件的内容,暂存的目录结构,提交对象,含附注标签对象都以包含信息头的二进制文件形式存储到版本库中(.git/objects目录),存储的对象以其自身SHA1值作为唯一标识,SHA1前两位为存储对象所在目录名,SHA1后38位为存储对象的文件名.存储的数据对象类型有: blob(文件内