1. 拉取最新主干代码,进行功能迭代或 bug 修复

  1. 首先切换到主干:
git checkout master
  1. 然后拉取最新代码:
git pull
  1. 基于 master 创建本地分支 xxx:
git checkout -b feature/xxx
  1. 将本地分支 xxx push 到远程 Git 库:
git push --set-upstream origin feature/xxx

2. 如何重命名远程分支

例如远程分支为:feature/xxx。

  1. 首先切换到该远程分支对应的本地分支:
git checkout feature/xxx
  1. 拉取下最新代码:
git pull
  1. 进行重命名:
git blame -m feature/xxx feature/login
  1. 将 feature/login 推动远程 Git 库:
git push --set-upstream origin feature/login
  1. 删除老旧远程分支:
git push origin --delete feature/xxx

3. 功能开发一半,临时修复线上紧急 bug

这个时候,新功能开发代码可能还没完成,我们需要把当前的工作进度保存下,等修复 bug 后再转过头来继续开发。

  1. 保存当前的工作进度,并附上注释:
git stash save "add login func"
  1. 获取 stash list:
git stash list
  1. 修复完 bug 后,还原之前的工作进度:
git stash pop stash@{index}

4. 如何挑拣别人的 commit

对于同一功能的不同分支,可能其他开发对该功能进行 bugfix,这个时候我们也想用在自己的分支 fix 这个 bug,注意不要脑残贴代码呢,敲黑板!!!

  1. 获取其他开发者修复的 commitId:
git log 或 git reflog
  1. 挑拣别人的 commitId 到自己的分支:
git cherry-pick commitId

5. 如何回退版本

对于某一错误操作致使项目无法正常运行,我们需要对某一点进行还原,有点类似电脑操作系统的备份点或还原点;这个操作会使 git 指针往后退,所以在 push 的时候需要强制 push 才能成功!

  1. 获取还原点,还原点选择很重要,需要选择正确版本的最新:
commitId
  1. 回退版本:
git reset commitId
  1. 查看 reset 后的代码更改项:
git status
  1. 忽略更改项,直接强制 push:
git checkout .
git push -f

6. 如何撤销某一个 commit

撤销操作和回退操作唯一不同的是,撤销的操作指针是往前的,回退的操作指针是往后的;撤销相当于相互抵消,等于白干!

  1. 获取需要撤销的 commitId。
  2. 进行撤销:
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 高频场景相关推荐

  1. 项目中使用粘性布局不起作用_项目中的 Git 使用规范

    祖师爷 Linus 在创造了伟大的 Linux 之后,又创造了应用最广泛的代码管理工具 -- Git,极大地提高了程序员的生产力. 现如今大部分项目都在使用 Git 作为代码管理工具,不论是在代码管理 ...

  2. IDEA项目中与Git仓库出现的常见问题_小结

    IDEA项目中与Git仓库出现的常见问题_小结 主要是在做SSM项目中遇到的与Git相关的问题,在此做一下记录,便于以后进行查看. 文章目录 IDEA项目中与Git仓库出现的常见问题_小结 一.做项目 ...

  3. 怎样在项目中使用git以及github管理(图文详解流程讲解)

    Github新建项目 1.登录github,点击右上角新建仓库 2.输入仓库名以及描述等,点击Create resposity 3.新建仓库完成后,右边有个clone or download,复制SS ...

  4. 如何在项目中利用 git 提高工作效率

    文/陈灵 华为无线网络产品线五级软件专家,在大型软件架构设计.性能优化方面有丰富的成功经验,多次荣获公司/产品线优秀软件架构实践表彰. 华为的明星博主,原创软件技术博客超过一百篇,愈十万字,促进了软件 ...

  5. 猿创征文|项目中使用Git,解决一些项目开发中常见的Git问题

    写在前面:Git的教程在网上很多,但我在最开始接触项目中需要用Git命令时,发现网上的教程并没有统一的答案告诉我,我到底该输入什么命令,什么又不需要

  6. OpenStack开发过程中常用Git操作场景(转)

    2019独角兽企业重金招聘Python工程师标准>>> Git是一个分布式的代码管理库,linux之父开发,用了三年多了,直观感受的优点如下: 一是真正的分布式,既不用担心哪天服务器 ...

  7. 测试在项目中使用数据库的场景

    部署项目后准备数据 1.开发配置好环境,没有连接数据库,需要我们自己连接数据库,连接好数据库后建表以及往表里添加数据.或者开发只给了几条数据模板,这时就需要测试自己造大量的数据. 2.项目的后台管理没 ...

  8. ios项目中使用gcd的场景_Redis在PHP项目中的实际应用场景

    商品维度计数 对商品喜欢数,评论数,鉴定数,浏览数进行计数 说起电商,肯定离不开商品,而附带商品有各种计数(喜欢数,评论数,鉴定数,浏览数,etc) Redis的命令都是原子性的,你可以轻松地利用IN ...

  9. ios项目中使用gcd的场景_iOS中超级超级详细介绍GCD

    本文是来自@FlyOceanFish的投稿 Grand Central Dispatch(GCD)是异步执行任务的技术之一.一般将应用程序中记述的线程管理用的代码在系统级中实现.开发者只需要定义想执行 ...

最新文章

  1. MySQL 数据库的优化,你知道有哪些?
  2. 行为模式之Visitor模式
  3. 企业邮箱自建战略优势大盘点
  4. Linux下shell脚本之双色球摇号脚本
  5. 0基础linux运维,Linux运维基础
  6. 深入理解DPDK程序设计|Linux网络2.0
  7. windowswps怎么以文件形式发送_手机WPS怎么以文件形式发送
  8. 重庆最狠的火锅,都是用来泡脚的
  9. 求职 | 百度笔试题
  10. java编写猜词游戏
  11. Binder的Native实现libbinder
  12. cobol学习4--语法与文法(2)
  13. 3 4j不是合法的python表达式_3+4j不是合法的Python表达式。
  14. 中空介孔载银二氧化硅聚苯乙烯微球/核壳聚苯乙烯/介孔二氧化硅微球/环氧树脂复合材料的制备
  15. 摄像模组中光学相关知识(三)
  16. css圆角(border-radius)的深入理解
  17. windows10 win10 假死 死机 鼠标键盘动不了解决
  18. 苹果手机如何用短信信息服务器,Iphone双卡双待如何发信息? 苹果双卡手机发短信的方法...
  19. 【开源项目】Flutter版 玩安卓,android开发模拟器推荐
  20. pes2020服务器维护中,【重磅】PES2021删卡时刻/传奇及国际服补偿一览

热门文章

  1. 通过正则表达式校验手机号码,拿走即用!
  2. 你听说过反摩尔定律吗?
  3. 2022-2028年中国滑雪产业投资分析及前景预测报告(全卷)
  4. 项目中使用 Git 高频场景
  5. python装饰器学习
  6. 【Spring】spring基于纯注解的声明式事务控制
  7. LeetCode中等题之两两交换链表中的节点
  8. MySql数据库Update批量更新与批量更新多条记录的不同值实现方法
  9. Django 视图URLconf3.1
  10. INSTALL_FAILED_UID_CHANGED