一、Git分支的使用

查看分支:

git branch

创建分支:

git branch branch1

切换到branch1

git checkout branch1

再用git branch查看,会看到有两个分支master和branch1,当前分支前面会有一个*

在branch1分支下,创建一个内容为branch file的branchtest的文件,并提交到新分支:

echo "branch file" >> branchtest

git add branchtest

git commit -m "branch1"

切换回master分支后会发现已经没有branchtest这个文件

git checkout master然后ls就看不到branchtest这个文件

二、Git分支的合并和删除

把branch1分支合并到master

git merge branch1

删除分支,如果分支没有合并,删除之前会提示

git branch -d branch1

如果分支没有合并,删除之前会提示

不合并强制删除

git brach -D branch1

合并和删除分支时都不能在该分支下操作

三、分支使用的原则

1、master分支是非常重要的,线上发布代码用这个分支,平时我们开发代码不要在这个分支上

2、创建一个dev分支,专门用作开发,只有当发布到线上之前,才会把dev分支合并到master

3、开发人员应该在dev的基础上再分支成个人分支,个人分支(在自己pc上)里面开发代码,然后合并到dev分支

四、现场保留

当你正在进行项目中某一部分的工作,里面的东西处于一个比较杂乱的状态,而你想转到其他分支上进行一些工作,问题是,你不想提交进行了一半的工作,否则以后你无法回到这个工作点,解决这个问题的方法就是git stash命令

例如:在branch1分支上编译一个文件1.txt

想要去另外分支逛逛,就可以先git add 1.txt

然后git stash保存一下现场

在到另外的分支上去(如果1.txt是一个已经存在的文件那么保存现场后文件内容则是你在编辑之前的内容,如果1.txt是一个新建的文件那么保存后就看不到1.txt这个文件了)

在回到branch1后查看现场列表:

git stash list

stash@{0}: WIP on branch1: 887e177 add 000

stash@{1}: WIP on branch1: 887e177 add 000

stash@{2}: WIP on branch1: 887e177 add 000

恢复现场用git stash apply,或指定要恢复的现场

git stash apply stash@{0}

五、远程分支

查看远程分支信息,使用git remote -v本地新建的分支如果不推送到远程,对其他人就是不可见的

查看远程分支:

git ls-remote origin

从本地推送分支:

git push origin branch1

如果推送失败,先用git pul抓取远程的新提交

在本地创建和远程分支对应的分支,使用git checkout -b branch-name origin/branch-name,本地和远程分支的名称最好一致

从远程抓取分支,使用git pull,如果有冲突,要先处理冲突

Git分支管理的更多相关文章

  1. GIT分支管理模型

    GIT分支管理模型 link: git-branching-model 主分支(Main branches) 项目两个常驻分支: master 主干分支(锁定),仅用于发布新版本,平时不能在上面干活, ...

  2. Git 分支管理是一门艺术

    转载: Git 分支管理是一门艺术 1 要确保:团队成员从主分支(master)获得的都是处于可发布状态的代码,而从开发分支(develop)应该总能够获得最新开发进展的代码. 2 "辅助分 ...

  3. Git 分支管理详解

    大纲: 1.前言 2.创建分支 3.切换分支 4.合并分支(快速合并) 5.删除分支 6.分支合并冲突 7.合并分支(普通合并) 8.分支管理策略 9.团队多人开发协作 10.总结 注,测试机 Cen ...

  4. Git分支管理[三]

    标签(linux): git 笔者Q:972581034 交流群:605799367.有任何疑问可与笔者或加群交流 git分支管理命令 git branch #创建分支 git branch -v # ...

  5. Git—分支管理

    Git—分支管理 分支学习:branch称为分支,默认仅有一个名为master的分支.一般开发新功能流程为:开发新功能时会在分支dev上进行,开发完毕后再合并到master分支. branch相关常用 ...

  6. [转载]理解 Git 分支管理最佳实践

    原文 理解 Git 分支管理最佳实践 Git 分支有哪些 在进行分支管理讲解之前,我们先来对分支进行一个简单的分类,并明确每一类分支的用途. 分支分类 根据生命周期区分 主分支:master,deve ...

  7. 02: git分支管理

    目录:GIT其他篇 01: git & github 02: git分支管理 目录: 1.1 Git常用命令 1.2 主要分支(保护分支) 1.3 特性分支:feature (开发分支合并到d ...

  8. git 分支管理——多人协作

    git 分支管理--多人协作 一般一个项目有一个master主分支,还有一个develop开发分支.主要是在develop分支上协作开发,然后merge合并到master主分支上. 当从远程仓库克隆时 ...

  9. Git分支管理及合并

    Git分支管理   建立分支 git branch [name]   切换到分支 git checkout [name]   查看有哪些分支 git branch   比较分支 git diff [b ...

  10. git学习------>Git 分支管理最佳实践

    ps:本文转载于 : https://www.ibm.com/developerworks/cn/java/j-lo-git-mange/index.html Git 是目前最流行的源代码管理工具.大 ...

随机推荐

  1. Nginx的静态资源缓存以及压缩

    Nginx是一款轻量级的网页服务器.反向代理器以及电子邮件代理服务器.Nginx采用的是异步非阻塞的通信机制(epoll模型),支持更大的并发连接.所谓的epoll模型:当事件没有准备好时,就放入ep ...

  2. 用Advanced Installer制作DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版详解

    关于 DotNetBar for Windows Forms 12.0.0.1_冰河之刃重打包版 --------------------11.8.0.8_冰河之刃重打包版-------------- ...

  3. error the @annotation pointcut expression is only supported at Java 5 compliance

    今天碰到这个错误,在网上找了下,是因为aspectjweaver.jar用的是1.5.3 本地eclipse的jdk版本为1.7 下载高版本的aspectjweaver.jar会解决此问题 http: ...

  4. JavaScript中作用域和作用域链解析

    学习js,肯定要学习作用域,js作用域和其他的主流语言的作用域还存在很大的区别. 一.js没有块级作用域. js没有块级作用域,就像这样: if(){ : console.log(a) //输出100 ...

  5. xcode中得一个坑

    因项目需求变动,我必须在coredata中的WorkLogModel表中添加一个字段:抄送人.起初我给这个字段起名为copyPerson,一切准备就绪后,发现从数据库读取这个copyPerson时,第 ...

  6. uboot(二): Uboot-arm-start.s分析

    声明:该贴是通过参考其他人的帖子整理出来,从中我加深了对uboot的理解,我知道对其他人一定也是有很大的帮助,不敢私藏,如果里面的注释有什么错误请给我回复,我再加以修改.有些部分可能还没解释清楚,如果 ...

  7. JXL操作Excel

    jxl是一个韩国人写的java操作excel的工具, 在开源世界中,有两套比较有影响的API可 供使用,一个是POI,一个是jExcelAPI.其中功能相对POI比较弱一点.但jExcelAPI对中文 ...

  8. ios 改变push方向,可以把present改为push方式

    - (void)pop{    CATransition* transition = [CATransition animation];    transition.duration = 0.5;   ...

  9. How to connect to Linux VM from Windows

  10. C#查找以某个字母开头另一字母结尾的字符串

    using System; using System.Text.RegularExpressions; namespace ConsoleApplication1 { class Program { ...