Git分支操作方法
Git仓库介绍
Git仓库分为本地仓库和远程仓库,及时是从远程clone下来的仓库,它在本地也是独立的,它包含了你所clone分支的所有源代码和历史记录,可以方便的在本地进行操作。
Git天生就是分布式的,本地仓库中可以完成checkout、stage、commit、reset、log等操作,这是一个源码管理系统的最常用功能,即便是断网的情况下,也可以使用本地的仓库查看历史记录、提交源码、合并分支。
分支是Git的一大亮点,与VSS、SVN、TFS不同的是,Git可以快速的在本地创建分支,通常是在瞬间完成的。
查看分支:
git branch
该命令可以查看本地分支,也可以使用参数 -a 查看所有分支。
上图中可以看到所有本地分支和远程分支,其中带 * 号的分支为当前的工作区使用的分支。
创建分支:
git branch future#a
上面的代码演示了创建名称为future#a的分支
迁出分支:
git checkout future#a
以上两个命令实现了创建并使用分支future#a的功能,它们还可以简化为一条指令:
git checkout -b future#a
在checkout的时候添加命令 –b 即可创建并使用该分支。
删除分支:
git branch –d future#a
当我们完成一个分支的开发,并完成合并后,可以使用-d命令删除分支。此时,如果分支未完成合并,删除时会提示失败。
如果要强制删除分支,可以使用命令-D来实现。
提交分支:
git commit future#a
使用commit指令可以提交当前工作区被跟踪的更改。
合并分支:
git merge future#a
使用merge指令,可以实现分支的合并。
远程操作:
以上命令都是基于本地进行操作的,并不会影响到远程的源代码。当我们完成代码后,需要将本地源码提交到远程库中,此时需要使用push指令,从远程拉去源代码需要使用pull指令。
git push –-set-upstream origin future#a
上面的代码演示了本地新创建的分支推送到远程分支。如果已经建立了远程的关联,则只需要使用git push即可。
git pull origin dev
上面的代码演示了从远程拉取dev分支,要使用拉取的分支,只需要使用checkout指令即可。
演练:
根据本地dev分支创建future分支,推送到远程仓库,开发完成后合并到dev分支,并删除future分支。
- 签出dev分支
git checkout dev
- 创建future分支,注意future的命名格式,以future开头,#分割,并使用新功能简要描述。
git checkout -b future#caching
- 提交future分支,并推送到远程仓库
git add . #将修改的文件添加到暂存区
git commit #提交到本地仓库
git push –-set-upstream origin future#caching #推送远程仓库
- 合并到dev分支
git checkout dev #切换到dev分支
git merge future#caching #合并future分支
git push dev #合并完成后推送dev分支
- 删除future分支
git branch –d future#caching #本地删除future分支
git push origin :heads/future#caching #从远程删除future分支
建议先在本地使用命令行进行练习,熟练可以看各个指令对应的可视化工具,目前我们使用过的可视化工具有GitExtensions/VisualStudio/VSCode等,所有可视化工具都是对git的封装,最根本的还是要掌握命令行的操作。
参考文档:https://git-scm.com/book/zh/v2
- 【专业技术】CSS作用及用法
- 生产环境sql语句调优实战第六篇(r2笔记91天)
- 关于分区表的move操作(r2笔记90天)
- 简单分析oracle的数据存储(r2笔记89天)
- 机器学习线性分类算法:感知器原理
- 通过shell脚本来查看Undo中资源消耗高的sql(r2笔记88天)
- 关于分页查询的优化思路(r3笔记第7天)
- 用机器学习方法对影评与观影者情感判定
- 关于查看文件的几个小命令(r3笔记第6天)
- 关于纠结的recycle pool的设置(r3笔记第5天)
- 融会贯通学习trigger(r2笔记第4天)
- 完整的R语言预测建模实例-从数据清理到建模预测
- 利用回归模型预测数值型数据(代码)
- 关于ORA-00020问题的反思(r2笔记第3天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- CSP201912-2-回收站选址题目解析-Java ,
- Spring boot框架快速入门
- SpringBoot 跨域问题:Access to XMLHttpRequest at ‘***‘ from origin ‘***‘ has been blocked by CORS policy
- 火车购票-CSP201609-2-Java
- 从后端开发人员的视角:最浅显的理解 Vue
- Sublime怎么默认显示文件路径
- Git 删除已提交的文件
- Sublime 怎么装SQL语法检测器
- Vue 设置环境变量和模式
- 你真的掌握了Python基本语法了吗?
- Mybatis-Generator 代码生成器的使用
- 提高数据分析工作效率-Sublime如何设置默认打开文件格式
- 使用 freemarker 制作代码生成器
- 假期闲的慌,不如做一点SQL基础练习吧
- Vue 中全局过滤器的使用