黑猴子的家:Git 实战操练 之 分支

系统上线了,但是产品经理又提了新的需求,评估一下工期要两个月,但是同时系统正在上线运行,时不时还要修改bug,如何管理几个版本?

1、创建分支

//创建分支,git  branch  <分支名>  
$ git branch feature_abc

//查看所有分支
$ git branch -v

2、切换分支

//切换分支,git checkout  <分支名>
$ git checkout feature_abc

//创建并切换分支,git checkout  –b  <分支名>
$ git checkout -b mm

3、合并分支

思想:要想合并分支,要在主支上操作,第一步切换回主分支,第二步合并分支,A合并B,就在A分支上操作,ok ?

简单说就是
主干合并分支,在主干上执行 git merge 命令
分支合并主干,在分支上执行 git merge 命令

//切换回主分支
$ git checkout master

//合并 feature_abc 分支
$ git merge feature_abc

4、冲突

冲突一般指同一个文件同一位置的代码,在两种版本合并时版本管理软件无法判断到底应该保留哪个版本,因此会提示该文件发生冲突,需要程序员来手工判断解决冲突。

5、合并时冲突

程序合并时发生冲突,系统会提示CONFLICT关键字,命令行后缀会进入MERGING状态,表示此时是解决冲突的状态。


6、解决冲突

此时通过git diff 可以找到发生冲突的文件及冲突的内容。


然后修改冲突文件的内容,再次git add <file> 和git commit 提交后,后缀MERGING消失,说明冲突解决完成。


7、解决冲突三板斧

(1)修改 merge 后,产生冲突的文件,可以先通过git diff 命令查看 冲突内容

(2)重新对修改后的文件,添加到暂存区 git add

(3)提交到本地库 git commit -m "提交操作描述"

8、分支命令汇总

//创建分支
$ git branch mybranch

//切换分支
$ git checkout mybranch

//创建并切换分支
$ git checkout -b mybranch

//更新master主线上的东西到该分支上
$ git rebase master

//切换到master分支
$ git checkout master

//更新mybranch分支上的东西到master上
$ git rebase mybranch

//提交
$ git commit -a

//对最近一次commit的进行修改
$ git commit -a –amend

//commit之后,如果想撤销最近一次提交(即退回到上一次版本)并本地保留代码
$ git reset HEAD^

//切换分支 
$ git checkout master

//(merge from mybranch)
$ git merge mybranch 

//删除分支
$ git branch -d mybranch

//强制删除分支
$ git branch -D mybranch

//列出所有分支
$ git branch

//查看各个分支最后一次提交
$ git branch -v

//查看哪些分支合并入当前分支
$ git branch --merged

//查看哪些分支未合并入当前分支
$ git branch --no-merged

//更新远程库到本地
$ git fetch origin

//推送分支
$ git push origin mybranch

//取远程分支合并到本地
$ git merge origin/mybranch

//取远程分支并分化一个新分支
$ git checkout -b mybranch origin/mybranch

//删除远程分支
$ git push origin :mybranch

//rebase
$ git checkout mybranch
$ git rebase master (rebase from master)

//举例
$ git checkout server

$ git rebase –onto master server client

$ git checkout master

$ git merge client (fostforward)

$ git rebase master server (checkout sever)

$ git merge server

$ git branch -d client

$ git branch -d server
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 一、基本概念: 注:对于git的分布式概念及其优点,不重复说明,自己百度或谷歌。本文中涉及到指令前面有$的,在cm...
    大厂offer阅读 5,300评论 0 3
  • Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...
    君惜丶阅读 9,196评论 0 13
  • 1.git的安装 1.1 在Windows上安装Git msysgit是Windows版的Git,从https:/...
    落魂灬阅读 14,339评论 4 54
  • Git使用教程:https://blog.csdn.net/tgbus18990140382/article/de...
    SkTj阅读 7,792评论 1 11
  • 离人去无词 影穷雁未飞 春暖雁回时 又见故人归
    雾夜忧魂阅读 3,265评论 2 25