git 常用的分支技巧
分支branch作为git一个强大功能,在平时开发如果能够善加使用,定能成倍提升开发效率。
1.分支开发模式
主分支master
上一般是稳定版本,需要保证随时都能发布。
所以,可以建立一个开发分支用于开发新功能。
git branch dev
查看有哪些分支
git branch -a
* dev
master
bugfix-1
remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/origin/dev
remotes/source/master
查看本地有哪些分支
git branch
* dev
master
bugfix-1
查看远程有哪些分支
git branch -r
origin/HEAD -> origin/master
origin/master
origin/dev
source/master
当一个开发分支上的新功能已经开发完成,并测试OK,此时,可以合并到master
.
当前在master
分支上,使用如下命令进行合并:
git merge dev --no-ff -m "AI2.0开发完成"
强烈建议使用--no-ff
选项,这样,当合并到主分支的时候,会生成一个提交记录。
如果合并到主分支后需要回滚,直接找到刚才合并时的提交记录,进行回滚即可。
尤其是在主分支和dev分支交叉提交记录的时候,如果不使用--no-ff,需要挨个找哪个记录是在dev分支上提交的,会比较麻烦。
默认情况下,Git执行"快进式合并"(fast-farward merge),会直接将Master分支指向Develop分支。
两种合并方式如下图所示。
fast-farward
no-fast-farward
2. 比较两个分支的差异
在开发分支上提交了很多内容,这个时候,如果需要比较开发分支与主分支的差异,可以使用以下方法:
2.1 查看两个分支差异的文件
git diff branch1 branch2 --stat
例如,查看dev
分支相对于master
的改动文件:
git diff master dev --stat
2.2 查看两个分支具体差异的内容
git diff branch1 branch2
3.查看提交历史及分支合并情况
用 oneline 或 format 时结合 --graph 选项,可以看到开头多出一些 ASCII 字符串表示的简单图形,形象地展示了每个提交所在的分支及其分化衍合情况。
git log --pretty=oneline --graph
* 7880521e21b1329965179bd45d632a3c91e227fa (HEAD -> master) Merge branch 'dev'
|\
| * 27cc24423ba0fcb01365eb7ffdc9ed33b059c36b (dev) 3 test
| * 714788192eb4760b614c2ab5fe45634df89904ee 2 test
* | ccce2c06660d8263e6a65d124ab947db0be56556 2 txt
|/
* 24c3941c7f5ef3e6b0c0be7638d29387f4643d90 1 test
git log --pretty=format:"%h %s" --graph
* 7880521 Merge branch 'dev'
|\
| * 27cc244 3 test
| * 7147881 2 test
* | ccce2c0 2 txt
|/
* 24c3941 1 test
(END)
*
代表是在哪个分支提交的。
4.参考
git 常用的分支技巧的更多相关文章
- git log 常用命令及技巧
git log常用命令以及技巧 1.git log 如果不带任何参数,它会列出所有历史记录,最近的排在最上方,显示提交对象的哈希值,作者.提交日期.和提交说明.如果记录过多,则按Page Up.Pag ...
- 「小技巧」使用Git从其他分支merge个别文件
小明发现在实际项目开发过程中,总会遇到各种各样的情况,比如一个大型的项目或版本迭代可能不是一次上线,可能会分好几次上线,这时候就会涉及创建多个分支,分别开发. 项目背景 产品经理:我们本次开发三个功能 ...
- iOS开发——开发技巧&Git常用命令
Git常用命令 初始化git init 加—bare实现远程仓库 配置git config user.name iCocos 配置全局git config —global user.na ...
- git 常用命令 创建查看删除分支,创建查看删除tag等
1. git 文档 https://github.com/progit/progit/blob/master/zh/02-git-basics/01-chapter2.markdown https ...
- 项目开发中git常用命令、git工作流、git分支模型
#新建代码库git init # 在当前目录新建一个Git代码库git init [project-name] # 新建一个目录,将其初始化为Git代码库git clone [url] # 下载一个项 ...
- git常用操作 配置用户信息、拉取项目、提交代码、分支操作、版本回退...
git常用操作 配置用户信息.拉取项目.提交代码.分支操作.版本回退... /********git 配置用户信息************/ git config --global user.name ...
- git 常用技巧
撤销修改 撤销本地修改 git reset --hard 或者 git checkout -- . 切换分支 切换到前一分支 git checkout - 切换到某个分支 git checkout & ...
- git常用命令速查:创建,修改提交,撤销,切换分支,合并分支,变基解决冲突
创建 $ git init #在当前目录下创建一个空的本地仓库 $ rm -rf .git #删除本地仓库 $ git add . #把当前目录下的所有文件添加到暂存区 $ git commi ...
- 01 . Git常用命令及方法和分支管理
原理 # Workspace:工作区 # Index / Stage:暂存区 # Repository:仓库区(或本地仓库) # Remote:远程仓库 本地分支关联远程 git branch --s ...
随机推荐
- ubuntu自己定义环境变量,替代常用的操作命令
问题背景是这样的,因为自己会经常用自己的用户链接服务器,比如自己的用户是yongjie,然后服务器的ip是162.105.97.31 所以经常执行的命令是ssh yongjie@162.105.97. ...
- Spring框架中<mvc:default-servlet-handler/>的作用
优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往 ...
- python、mysql三-2:数据类型
一 介绍 存储引擎决定了表的类型,而表内存放的数据也要有不同的类型,每种数据类型都有自己的宽度,但宽度是可选的 详细参考: http://www.runoob.com/mysql/mysql-data ...
- detect 导图
https://www.zhihu.com/question/356551927/answer/919612766 知乎上看到的,不错
- php socket如何实现长连接
长连接是什么? 朋友们应该都见过很多在线聊天工具和网页在线聊天的工具.学校内有一种熟悉的功能,如果有人回复你了,网站会马上出现提示,此时你并没有刷新页面:Gmail也有此功能,如果邮箱里收到了新的邮件 ...
- Restricting Input in HTML Textboxes to Numeric Values
Ok, here’s a fairly basic one – how to force a textbox to accept only numeric input. Somebody asked ...
- Linux perf命令详解及常用参数解析
perf 相关命令:暂无相关命令 perf是Linux下的一款性能分析工具,能够进行函数级与指令级的热点查找. Perf List利用perf剖析程序性能时,需要指定当前测试的性能时间.性能事件是指在 ...
- CH5101 LICS//hdu5904 LICS
恭喜我已经正式沦为pj组选手QwQ 标题两个题其实不一样的.这是ch 这是hdu 一.CH上的:裸题,求LICS.n<=3000 经典普及组dp题,题解烂大街了.所以对于这题,只讲细节: $ ...
- ssh转发流量的四种姿势
在很多时候拿到了内网的一台主机,我们需要用它做跳板来对内网进一步扩大战果. 也许方法很多,meterpreter,nc等等.但是最方便也最有可能穿透防火墙的方法,就是用ssh. 分为四种类型: 本地转 ...
- 2017 网易游戏互娱游戏研发4.21(offer)
网易游戏互娱(offer) 去年这个时候就参加过网易游戏的实习生招聘,到今年总共收到了4次拒信.不过这次运气好,终于get了最想要的offer.去年实习生互娱笔试挂,秋招笔试挂,今年春招互娱投了连笔试 ...