一、查看分支

查看的git命令如下:


git branch 列出本地已经存在的分支,并且当前分支会用*标记
git branch -r 查看远程版本库的分支列表
git branch -a 查看所有分支列表(包括本地和远程,remotes/开头的表示远程分支)
git branch -v 查看一个分支的最后一次提交
git branch --merged  查看哪些分支已经合并到当前分支
git branch --no-merged 查看所有未合并工作的分支

1、查看远程分支

git branch -r

2、查看本地分支

git branch

二、创建和切换分支

1、创建新分支

git branch 新分支名称

2、切换分支

git checkout 分支名称

3、创建分支的同时,切换到该分支上

git checkout -b 新分支名称

三、从远程仓库pull(拉取)代码到本地分支
1、指定远程分支,和本地分支

$ git pull origin 远程分支名称:本地分支名称

特别注意的一点:origin是远程仓库连接默认的对象名称,有些人可能在Gui上自定义过远程仓库连接的名称,可以在Gui上查看真正的名称,如下:

2、如果不写本地分支名称,则默认和远程分支同名 ,命令如下:

$ git pull origin 远程分支名称

四、将新分支推送到远程仓库
方法1:使用git命令

git push origin 分支名称

假设我本地创建了一个名为dev的分支,远程仓库还没有这个分支,推送的命令是:

git push --set-upstream origin dev

分析:

git分支与远程主机存在对应分支,可能是单个可能是多个。

simple方式:如果当前分支只有一个追踪分支,那么git push origin到主机时,可以省略主机名。

matching方式:如果当前分支与多个主机存在追踪关系,那么git push --set-upstream origin master(省略形式为:git push -u origin master)将本地的master分支推送到origin主机(--set-upstream选项会指定一个默认主机),同时指定该主机为默认主机,后面使用可以不加任何参数使用git push。

注意:

Git 2.0版本之前,默认采用matching方法,现在改为默认采用simple方式。

方法2:直接在Gui面板上使用Push功能

五、删除分支
1、删除本地分支(不能删除当前所在的分支,如果要删除,必须先切换到其他分支上)

git branch -d 分支名称

如果删除时报错:error: The branch '分支名称' is not fully merged. (意思是:分支未完全合并)。解决方法是使用 -D 强制删除,代码如下:

git branch -D 分支名称

2、删除远程分支

git push origin :分支名称
注意:分支名称前有个冒号,分支名前的冒号代表删除

六、合并分支
1、假如我们现在位于分支dev上,刚开发完自己负责的功能,执行了下列命令:

git  add .
git  commit -m '某某功能已完成,提交到[分支名称]分支'
git  push -u origin 分支名称

2、首先切换到master分支上

git checkout master

3、如果是多人开发的话,需要把远程master分支上的代码pull下来

git pull origin master

4、然后把dev分支的代码合并到master上

git merge 分支名称
 如果git merge的时候出现冲突,可以执行下面的命令取消merge:

git merge --abort:

5、然后查看状态

git status

6、最后一步,Push推送到远程仓库

git push origin master

知识点补充: 
什么是分支?
 1.Git 处理分支的方式可谓是难以置信的轻量,创建新分支这一操作几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。 与许多其它版本控制系统不同,Git 鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。 理解和精通这一特性,你便会意识到 Git 是如此的强大而又独特,并且从此真正改变你的开发方式。

2.Git保存的不是文件的变化或者差异,而是一系列不同时刻的快照 。在进行提交操作时,Git 会保存一个提交对象(commit object)。 该提交对象会包含一个指向暂存内容快照的指针,还包含了作者的姓名和邮箱,提交时输入的信息以及指向它的父对象的指针。 首次提交产生的提交对象没有父对象,普通提交操作产生的提交对象有一个父对象, 而由多个分支合并产生的提交对象有多个父对象。

3.分支在实际开发中有什么用呢?假设你准备开发一个新功能,但是需要两周才能完成,第一周你写了50%的代码,如果立刻提交,由于代码还没写完,不完整的代码库会导致别人不能干活了。如果等代码全部写完再一次提交,又存在丢失每天进度的巨大风险。现在有了分支,就不用怕了。你创建了一个属于你自己的分支,别人看不到,还继续在原来的分支上正常工作,而你在自己的分支上干活,想提交就提交,直到开发完毕后,再一次性合并到原来的分支上,这样既安全,又不影响别人工作。

什么是派生?
派生的意思就是分支支流,gitblit上的派生,实际上就是git的分支,主支是master

Git命令:查看分支、创建分支、合并分支相关推荐

  1. linux添加svn分支,TortoiseSVN 分支创建与合并

    前提准备: 确保本地Work Copy 和 服务器上的 版本一致.( 所有代码都提交到SVN,并update一次) 1  从主干创建分支代码 在本地Work Copy  选中项目文件夹,鼠标右键选择 ...

  2. Git分支创建、合并、上传等命令

    Git分支创建.合并.上传等命令 一. 创建test分支提交步骤 1.列出所有分支 git branch -a 2.创建test分支 git branch test 3.切换到test分支: git ...

  3. git创建与合并分支

    创建与合并分支 在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分 支,即master分支.HEAD严格来 ...

  4. 创建与合并分支-git入门教程

    在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD严格来说不是指向提交,而 ...

  5. 已经无法合并还报请合并git_GIT 分支管理:创建与合并分支、解决合并冲突

    分支就是科幻电影里面的平行宇宙,当你正在电脑前努力学习Git的时候,另一个你正在另一个平行宇宙里努力学习SVN. 如果两个平行宇宙互不干扰,那对现在的你也没啥影响.不过,在某个时间点,两个平行宇宙合并 ...

  6. 分支管理---创建与合并分支

    在版本回退里,你已经知道,每次提交,Git都把它们串成一条时间线,这条时间线就是一个分支.截止到目前,只有一条时间线,在Git里,这个分支叫主分支,即master分支.HEAD严格来说不是指向提交,而 ...

  7. Git配置本地分支、远程分支、合并分支、撤销合并分支

    1.使用 git brach 命令可以新建一个本地分支 git branch dev-QC 新建完分支后可以使用 git checkout 切换到刚才新建的分支 git checkout dev-QC ...

  8. git命令推送本地到远程分支

        目录 git命令推送本地到远程分支 1.从命令行创建一个新的仓库 2.从命令行推送已经创建的仓库 3.删除远程 Git 仓库 fetch -p 修剪远程分支 Git复制已有分支到新分支开发 g ...

  9. 基于 dev 分支创建新的分支

    基于 dev 分支创建新的分支 问题 正确操作 项目在gitlab上,现在需要参与开发工作,因此从dev分支拉一个自己的新分支进行开发 问题 如果你在写完代码add commit 之后,checkou ...

  10. 使用Git命令-查看远程分支、本地分支、创建分支、删除分支的方法

    Git-查看远程分支.本地分支.创建分支 查看本地分支 查看远程分支 查看所有分支 切换远程分支 合并分支 撤消上一次commit的内容 git commit -m 注释换行 pull下所有分支 gi ...

最新文章

  1. [C++再学习系列] 前置++与后置++
  2. 2014目标!!!!
  3. 梯度下降法及其Python实现
  4. Java基础-方法(2)和数组
  5. IT人的自我导向型学习:学习的4个层次
  6. [css] 如何让背景图片固定不随滚动条滚动
  7. springboot listener_Springboot 监听redis key的过期事件
  8. 【文末赠书】价值百万大奖的幸运质数
  9. Java不是true值不变_Java语言中String a=a;String b=a; 为什么 a==b 值为 true?
  10. 开源,免费,跨平台——白鹭引擎(Egret Engine)
  11. KNN(七)--最近邻及OpenCV源码分析
  12. 关于平方根倒数速算法(雷神之锤3,牛B)
  13. 写一个程序,打印数字1到100,3的倍数打印“Fizz”来替换这个数,5的倍数打印“Buzz”,对于既是3的倍数又是5的倍数的数字打印“FizzBuzz”...
  14. UVALive 6508 Permutation Graphs
  15. python分页查询_python | MySQL分页查询优化
  16. 信息系统安全等级保护 备案表
  17. 【真正的解决方法】error: RPC failed; curl 56 OpenSSL SSL_read: SSL_ERROR_SYSCALL, errno 10054
  18. HTMLCSS仿京东详情页静态页面制作总结
  19. 【未解决】pyrit:Scapy 2.x is required to use Pyrit‘s analyze/attack functions but seems to be unavailab
  20. 2018年Github上值得学习的十个热门项目

热门文章

  1. 计算机毕业设计asp.net考试安排管理系统VS开发sqlserver数据库web结构c#编程计算机网页源码项目
  2. ubuntu下安装idea
  3. Cocos Creator 安卓构建发布 报错
  4. jenkin服务端搭建
  5. 【MySQL】(七)SQL约束——主键约束、非空约束、唯一约束、默认值约束、外键约束
  6. python 画素描画
  7. 联通开通流量不显示无服务器,史上最全的联通流量自助开通方法!
  8. 日志框架LOG4J2系列二——log4j2配置文件
  9. virtualbox 给Linux磁盘扩容
  10. oracle blob转字符串乱码,oracle数据库字段乱码