项目中使用 Git 高频场景
1. 拉取最新主干代码,进行功能迭代或 bug 修复
- 首先切换到主干:
git checkout master
- 然后拉取最新代码:
git pull
- 基于 master 创建本地分支 xxx:
git checkout -b feature/xxx
- 将本地分支 xxx push 到远程 Git 库:
git push --set-upstream origin feature/xxx
2. 如何重命名远程分支
例如远程分支为:feature/xxx。
- 首先切换到该远程分支对应的本地分支:
git checkout feature/xxx
- 拉取下最新代码:
git pull
- 进行重命名:
git blame -m feature/xxx feature/login
- 将 feature/login 推动远程 Git 库:
git push --set-upstream origin feature/login
- 删除老旧远程分支:
git push origin --delete feature/xxx
3. 功能开发一半,临时修复线上紧急 bug
这个时候,新功能开发代码可能还没完成,我们需要把当前的工作进度保存下,等修复 bug 后再转过头来继续开发。
- 保存当前的工作进度,并附上注释:
git stash save "add login func"
- 获取 stash list:
git stash list
- 修复完 bug 后,还原之前的工作进度:
git stash pop stash@{index}
4. 如何挑拣别人的 commit
对于同一功能的不同分支,可能其他开发对该功能进行 bugfix,这个时候我们也想用在自己的分支 fix 这个 bug,注意不要脑残贴代码呢,敲黑板!!!
- 获取其他开发者修复的 commitId:
git log 或 git reflog
- 挑拣别人的 commitId 到自己的分支:
git cherry-pick commitId
5. 如何回退版本
对于某一错误操作致使项目无法正常运行,我们需要对某一点进行还原,有点类似电脑操作系统的备份点或还原点;这个操作会使 git 指针往后退,所以在 push 的时候需要强制 push 才能成功!
- 获取还原点,还原点选择很重要,需要选择正确版本的最新:
commitId
- 回退版本:
git reset commitId
- 查看 reset 后的代码更改项:
git status
- 忽略更改项,直接强制 push:
git checkout .
git push -f
6. 如何撤销某一个 commit
撤销操作和回退操作唯一不同的是,撤销的操作指针是往前的,回退的操作指针是往后的;撤销相当于相互抵消,等于白干!
- 获取需要撤销的 commitId。
- 进行撤销:
git revert commitId
7. 如何合并分支
当功能分支测试完成,一切就绪后,需要同步下 master 分支,避免不必要的冲突;这个时候有两个选择:
git merge origin/master
git merge --no-ff origin/master
两者有什么区别呢?
-ff
默认情况是快进式(即 fast-forward),当合并两个分支时,如果顺着一个分支走下去可以到达另一个分支的话,那么 Git 在合并两者时,只会简单地把指针右移,叫做“快进”(fast-forward);这种情况如果删除分支,则会丢失 merge 分支信息。
--no-ff
关闭 fast-forward 模式,在提交的时候,会创建一个 merge 的 commit 信息,然后合并与 master 分支 merge 的不同行为,向后看,其实最终都会将代码合并到 master 分支,而区别仅仅只是分支上的简洁清晰的问题,然后,向前看,也就是我们使用 reset 的时候,就会发现,不同的行为就带来了不同的影响。
--squash
把一些不必要 commit 进行压缩,比如说,你的 feature 在开发的时候写的 commit 很乱,那么我们合并的时候不希望把这些历史 commit 带过来,于是使用 --squash
进行合并,此时文件已经同合并后一样了,但不移动 HEAD,不提交。需要进行一次额外的 commit 来“总结”一下,然后完成最终的合并。
这里笔者强烈推荐用 --on-ff
模式,这样合并上来的分支 commit 一目了然,便于后期的版本更迭。
项目中使用 Git 高频场景相关推荐
- 项目中使用粘性布局不起作用_项目中的 Git 使用规范
祖师爷 Linus 在创造了伟大的 Linux 之后,又创造了应用最广泛的代码管理工具 -- Git,极大地提高了程序员的生产力. 现如今大部分项目都在使用 Git 作为代码管理工具,不论是在代码管理 ...
- IDEA项目中与Git仓库出现的常见问题_小结
IDEA项目中与Git仓库出现的常见问题_小结 主要是在做SSM项目中遇到的与Git相关的问题,在此做一下记录,便于以后进行查看. 文章目录 IDEA项目中与Git仓库出现的常见问题_小结 一.做项目 ...
- 怎样在项目中使用git以及github管理(图文详解流程讲解)
Github新建项目 1.登录github,点击右上角新建仓库 2.输入仓库名以及描述等,点击Create resposity 3.新建仓库完成后,右边有个clone or download,复制SS ...
- 如何在项目中利用 git 提高工作效率
文/陈灵 华为无线网络产品线五级软件专家,在大型软件架构设计.性能优化方面有丰富的成功经验,多次荣获公司/产品线优秀软件架构实践表彰. 华为的明星博主,原创软件技术博客超过一百篇,愈十万字,促进了软件 ...
- 猿创征文|项目中使用Git,解决一些项目开发中常见的Git问题
写在前面:Git的教程在网上很多,但我在最开始接触项目中需要用Git命令时,发现网上的教程并没有统一的答案告诉我,我到底该输入什么命令,什么又不需要
- OpenStack开发过程中常用Git操作场景(转)
2019独角兽企业重金招聘Python工程师标准>>> Git是一个分布式的代码管理库,linux之父开发,用了三年多了,直观感受的优点如下: 一是真正的分布式,既不用担心哪天服务器 ...
- 测试在项目中使用数据库的场景
部署项目后准备数据 1.开发配置好环境,没有连接数据库,需要我们自己连接数据库,连接好数据库后建表以及往表里添加数据.或者开发只给了几条数据模板,这时就需要测试自己造大量的数据. 2.项目的后台管理没 ...
- ios项目中使用gcd的场景_Redis在PHP项目中的实际应用场景
商品维度计数 对商品喜欢数,评论数,鉴定数,浏览数进行计数 说起电商,肯定离不开商品,而附带商品有各种计数(喜欢数,评论数,鉴定数,浏览数,etc) Redis的命令都是原子性的,你可以轻松地利用IN ...
- ios项目中使用gcd的场景_iOS中超级超级详细介绍GCD
本文是来自@FlyOceanFish的投稿 Grand Central Dispatch(GCD)是异步执行任务的技术之一.一般将应用程序中记述的线程管理用的代码在系统级中实现.开发者只需要定义想执行 ...
最新文章
- MySQL 数据库的优化,你知道有哪些?
- 行为模式之Visitor模式
- 企业邮箱自建战略优势大盘点
- Linux下shell脚本之双色球摇号脚本
- 0基础linux运维,Linux运维基础
- 深入理解DPDK程序设计|Linux网络2.0
- windowswps怎么以文件形式发送_手机WPS怎么以文件形式发送
- 重庆最狠的火锅,都是用来泡脚的
- 求职 | 百度笔试题
- java编写猜词游戏
- Binder的Native实现libbinder
- cobol学习4--语法与文法(2)
- 3 4j不是合法的python表达式_3+4j不是合法的Python表达式。
- 中空介孔载银二氧化硅聚苯乙烯微球/核壳聚苯乙烯/介孔二氧化硅微球/环氧树脂复合材料的制备
- 摄像模组中光学相关知识(三)
- css圆角(border-radius)的深入理解
- windows10 win10 假死 死机 鼠标键盘动不了解决
- 苹果手机如何用短信信息服务器,Iphone双卡双待如何发信息? 苹果双卡手机发短信的方法...
- 【开源项目】Flutter版 玩安卓,android开发模拟器推荐
- pes2020服务器维护中,【重磅】PES2021删卡时刻/传奇及国际服补偿一览