在多人协作的情况下,master通常是稳定的分支.可以再建一些"develop","testing"等名称的分支.主管master的人做开发的话最好也建立自己的分支.

命令操作

git branch 列出当前已经checkout出来的分支,当前分支前边用星号表示.
git branch -a 列出所有本地和远程的分支

开始一项功能的开发工作时,基于某一分支创建分支。

  1. 如基于master创建新分支my
    $ git checkout -b my master
    Switched to a new branch "my"

  2. 切换到自己的分支my
    $ git checkout my
    本地文件将会发生变化,使用git log看一下提交的日志
    此时HEAD指针指向my分支中最新的commit id。

  3. 同步master到自己的分支(适当的时候)
    git merge --no-ff master

  4. 合并分支
    上一步其实就是合并操作,同样用法git merge [option] branch_name
    列出已合并到当前分支的其它分支: git branch --merged
    未合并到当前分支的分支: git branch --no-merged

  5. push
    将当前分支提交到关联的远程仓库的对应分支
    git push origin my

  6. 修改分支名称:
    git branch -m <oldname> <newname>

  7. 删除远程分支:
    推送一个空分支到远程分支,其实就是删除远程分支: git push origin :<branchName>
    在Git v1.7.0 之后,可以使用--delete选项删除远程分支: git push origin --delete <branchName>
    删除不存在对应远程分支的本地分支,比如远程的master分支:通过git remote show origin可以看出关联的远程分支处于stale(过时)状态,并提示使用git remote prune删除.使用 git remote prune origin 可以将其从本地版本库中去除。更简单的方法是使用fetch命令的-p选项,它在fetch之后删除掉没有与远程分支对应的本地分支:git fetch -p.

更进一步

切换分支时,如果工作区非clean状态,有如下几种处理方式:

  1. add并且commit,再checkout,提交到当前分支
  2. add但不commit,可以stash,然后checkout回来之后stash apply,在commit,提交到当前分支
  3. add但不commit,也不stash,直接checkout,然后再commit的话,记录就在切换分支下面。

其背后的原因:一个本地的git repo只有一个工作区和暂存区,但是有多个分支的提交区,而我们的checkout只是将HEAD指针从一个分支切换到另一个分支。

命令提示符显示分支名称

在bash命令行提示符中添加git仓库的当前branch名称:

function git-branch-name {git symbolic-ref HEAD 2>/dev/null | cut -d"/" -f 3
}
function git-branch-prompt {local branch=`git-branch-name`if [ $branch ]; then printf " (%s)" $branch; fi
}PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]$(git-branch-prompt)'$'\n''\$ '
# 其中$'\n'是换行

转载于:https://www.cnblogs.com/makefile/p/git-branch.html

git branch 分支管理相关推荐

  1. Git初学札记(五)————Branch分支管理

    引言 正如之前的博客中提到的,Git区别于Svn的一个最明显的功能就是分支管理功能. 那么什么是分支?分支又能为我们的开发带来什么翻天覆地的变化呢?(为了使博客的内容更具权威性和专业性,以下部分内容摘 ...

  2. linux下git分支管理,git远程分支管理

    git远程分支管理 使用分支的原则 master分支是非常重要的,线上发布代码用这个分支,平时我们开发代码不要在这个分支上 创建一个dev分支,专门用作开发,只有当发布到线上之前,才会把dev分支合并 ...

  3. Git 代码分支管理 / 版本管理

    Git 代码分支管理 / 版本管理 在使用 Git 时,基本不可能只有一个分支. 即使只有一个人发开,也会考虑代码的安全而分多个分支.多人协同开发时,可能每个人在不同的分支开发,也可能不同团队在不同的 ...

  4. Git远程分支管理(四)

    本系列为个人学习Git参照廖雪峰老师的笔记 本文内容:Git远程分支管理 参考笔记: https://www.liaoxuefeng.com/wiki/896043488029600 文章目录 3 G ...

  5. Git实战(五)| 让工作更高效,Git的分支管理

    上一篇讲到Git的分支管理实操,在线合并和本地合并都进行了实操.毕竟:光说不练是假把式.而只练不整理,只能是傻把式了.分支管理到底如何进行管理呢? 先以GitLab上的一张经典的图打头,作为一个总体概 ...

  6. git branch 分支

    Git自学之路(四)- git branch 分支 几乎所有的版本控制系统都以某种形式支持分支. 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线. 在很多版本控制系统中,这是一个 ...

  7. git的分支管理(详细版)

    git的分支管理 git所有分支之间彼此互不干扰,各自完成各自的工作和内容.可以在分支使用完后合并到总分支(原分支) 上,安全.便捷.不影响其他分支工作 查看当前工作在那个分支 git branch ...

  8. git branch 分支 按照时间排序

    git branch 分支 按照时间排序 当 git 分支越搞越多的时候,我们往往只想关注最近修改过的分支,所以一个很大的需求是根据最近修改 (commit) 的时间来排序和显示分支branch 目前 ...

  9. git branch 分支命令图文详解

    git branch 分支命令详解 git branch (查看本地分支) git branch -r (查看远程分支) git branch -a (查看所有分支) git branch < ...

  10. 139.00.005 Git学习-分支管理

    @(139 - Environment Settings | 环境配置) 一.Why? 分支在实际中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交, ...

最新文章

  1. c语言链表程序框图,C语言课程设计————写下流程图! 谢谢
  2. 《java多线程编程实战指南 核心篇》读书笔记三
  3. 编写一个函数,函数接收一个字符串,是由十六进制数组成的一组字符串,函数的功能是把接到的这组字符串转换成十进制数字.并将十进制数字返回
  4. Spring配置汇总
  5. 操作系统复习题+最终版
  6. 【渝粤题库】国家开放大学2021春2517社区工作题目
  7. java 自定义对象 排序,使用自定义排序顺序对对象的ArrayList进行排序
  8. MachineLearning(12)- RNN-LSTM-tf.nn.rnn_cell
  9. bson json c语言,对比平台--JSON和BSON之间的区别
  10. java获取json中某个字段
  11. 通俗理解“Schmidt正交化”和“正交矩阵” 此博文包含图片 (2015-05-19 09:50:47) 施密特正交化在空间上是不断建立垂直于原次维空间的新向量的过程。 如图β2垂直于β1(1维)
  12. ISO9000软件使用管理办法
  13. c++双向列表释放_Python列表生成式12个小功能,你常用哪几个?
  14. Android:Smali语法中文介绍
  15. poi导出execl固定表头表尾
  16. dw自动生成html,如何用Dreamweaver快速创建HTML代码
  17. ACS 2017中国汽车CIO峰会10月强势登陆上海
  18. 大数据处理过程之核心技术ETL详解
  19. 【buildroot】buildroot常用文件夹
  20. 有空赚赚美元! 美国的外包项目交易网站

热门文章

  1. 分表用到的一些函数/php mysql 前面补0
  2. Java SE 基础:List 集合列表
  3. linux 查看分区
  4. PAT1019 General Palindromic Number
  5. 【GStreamer开发】GStreamer基础教程05——集成GUI工具
  6. jQuery编写插件()
  7. 《代码大全》学习摘要(五)软件构建中的设计(下)
  8. (转)在NGUI使用图片文字(数字、美术字)(直接可用于UILable)
  9. vCenter 或者 vmwareworkstation 虚拟机 安装vmware tools
  10. Power Tools for TFS 11 Beta