豫ICP备17040950号-2

git branch

文章目录
  1. 1. 前言
  2. 2. 创建分支
  3. 3. 上传分支
  4. 4. 删除分支
  5. 5. 恢复已删除分支
  6. 6. 合并分支
    1. 6.1. merge
    2. 6.2. rebase
  7. 7. 书签

前言

Branches in Git are incredibly lightweight as well. They are simply pointers to a specific commit – nothing more. This is why many Git enthusiasts chant the mantra:

branch early, and branch often.

Because there is no storage / memory overhead with making many branches, it’s easier to logically divide up your work than have big beefy branches.

When we start mixing branches and commits, we will see how these two features combine. For now though, just remember that a branch essentially says “I want to include the work of this commit and all parent commits.”

创建分支

1、创建本地bugFix分支
git branch bugFix

2、切换到bugFix分支

1
2
git branch -a
git checkout bugFix

3、创建远程bugFix分支
git push origin HEAD:bugFix
创建远程bugFix2分支
git push origin HEAD:bugFix2

4、下载后切换到bugFix分支
git checkout origin/bugFix

上传分支

在bugFix分支下进行了修改,然后提交修改,命令如下:

1
2
3
git add .
git commit -m "something"
git push origin HEAD:bugFix

删除分支

1、删除本地分支
git branch -D bugFix

2、删除线上分支
git push --delete origin bugFix

恢复已删除分支

1、查看全局日志
git reflog或者git log -g

2、新建分支
git branch bugFix 3eac14d

3、上传分支
git checkout bugFix
git push origin HEAD:bugFix

合并分支

merge

1、修改或添加文件,提交一次
git add .git commit

2、切换回master
git checkout master

3、再次修改或添加文件,提交一次
git add .git commit

4、合并bugFix分支到master
git merge bugFix
如果有冲突,会有提示:

1
2
3
Auto-merging test.txt
CONFLICT (content): Merge conflict in test.txt
Automatic merge failed; fix conflicts and then commit the result.

5、打开test.txt,可以看到类似如下冲突:

1
2
3
4
5
<<<<<<< HEAD
hello merge master
=======
hello merge bugFix
>>>>>>> bugFix

可以看到 ======= 隔开的上半部分,是 HEAD(即 master 分支,在运行 merge 命令时检出的分支)中的内容,下半部分是在bugFix分支中的内容。解决冲突的办法无非是二者选其一或者由你亲自整合到一起。

6、修改test.txt如下:

1
hello merge master

7、在解决了所有文件里的所有冲突后,运行git add将把它们标记为已解决(resolved)。
然后使用git commit命令进行提交,merge就算完成了。

8、切换到bugFix分支
git checkout bugFix

9、合并master分支到bugFix
git merge master

rebase

假设当前分支是bugFix,git rebase master进行的操作,把bugFix分支起点变成master分支的子节点。整个流程大致如下:

1
2
3
4
5
6
7
git branch bugFix
git checkout bugFix
git commit
git checkout master
git commit
git checkout bugFix
git rebase master

书签

Learn Git Branching
http://learngitbranching.js.org/

git merge简介
http://blog.csdn.net/hudashi/article/details/7664382

Git Book 中文版 - rebase
http://gitbook.liuhui998.com/4_2.html

关于我
做官要学曾国藩,经商要学胡雪岩,做人当学杜月笙,编码要学张小龙!
友情链接标签
CPU Docker JVM MYSQL OSGI SQL优化 TCP/SOCKET ajax android angular angularjs aop binlog binutils bower centos centos7 chrome cms coding cookie cpu crawler css c语言 disk dns docker eclipse ewb excel exports fedora freemarker ftp gcc git gitcafe gitignore hadoop hexo hibernate html idea ie jar java javascript java加密 java基础 jdbc jdk jenkins jira jpa jquery js jsp jvm kissy leetcode lfs linux lisp localstorage markdown mathjax matlab maven mongodb mpc mvc mybatis mysql nginx node node.js nodejs notepad++ npm nvm oa openshift oracle php pmp python qq redhat request root samble sass scheme seajs seo servlet session sessionstorage sftp shell socketio spring springboot springcloud springmvc sprite sqlserver ssh struts2 supervisor thinkphp tomcat ubuntu ueditor url validator vim virtualbox vsftpd wifi wiki win7 win8 windows word wordpress xdebug xftp xmpp xshell yum yum源 七牛 万维钢 专注 乔布斯 书签 书籍 乱码 二进制 云栖大会 云片 亦舒 企业网站 优化 健身 光标 内网穿透 冯仑 函数式编程 分布式 前端 前端框架 办公 加密 励志 博士 博客 参数校验 双系统 反向代理 句柄 吴晓波 周云龙 周鸿祎 命令 命令行 响应式 国学 图标 图片上传 域名 外包 大数据 子沫 孙正义 学习 安全 安卓 定点数 寄存器虚拟机 密码 富文本编辑器 小数 小程序 小说 并发信号量 开发经验 引擎 张文亮 张艺谋 形式语义学 微信 心经 快捷键 思考 性能优化 感动 感悟 报错 拍照 指针 接口限流 插件 插件化 操作系统 故障定位 数学 数据库 数据库连接池 文件管理系统 文件系统 文档 新浪博客 方法 易中天 最美 朋友 服务器 机器学习 李银河 杨照 标签 栈式虚拟机 桌面 模块化 模板引擎 正则表达式 毕设 沈奇岚 浮点数 渲染 游戏 演讲 爬虫 牛顿 特殊注释 王纯 理想 生活 画画 白岩松 百度地图 知识工程 短信 禅定 程序员 程序感慨 笑话 笔记 算法 粘贴位 系统 索引原理 缓存 编程 编程心得 编译器 编辑器 缩写 网站 网络 网络机房 网络编程 网页复制 罗西 考研 自动化运维 自动部署 自娱自乐 艾佳生活 薛涌 蚁群算法 街道 计算机 计算机基础 论文 设计模式 语录 读书 读者 课程设计 调试 跨域 转义符 转载 软件 遗传算法 错误 镜像 问题 阮一峰 防火墙 随笔 雷军 音乐 项目 项目管理 项目经理 验证码 高并发 黑客