每天都会写架构师文章,Java技术文章天天更新,感兴趣的点个关注再走呗!

Git 虽然因其分布式管理方式,不完全依赖网络,良好的分支策略,容易部署等优点,已经成为最受欢迎的源代码管理方式。

但是一分耕耘一分收获,如果想更好地掌握 git,需要付出大量的学习成本。

即使在各种 GUI 的加持下,也不得不说 git 真的很难,在 V2EX 上也常有如何正确使用 git 的讨论,同时在 Stackoverflow 上超过 10w+ 的 git 相关问题也证明了 git 的复杂性。

再加上 git 的官方文档也一直存在着 “先有鸡还是先有蛋” 的问题,虽然文档非常全面,但如果你不知道你遇到的问题叫什么,那么根本就无从查起。

作为国内领先的研发管理解决方案供应商,CODING 一直致力于在国内普及 git 的使用,为软件研发提供更高效率。

本文节选自 Katie Sylor-Miller 在日常工作中所遇到过的让他很头疼的 git 相关问题,并整理了相应的应对措施,在这里分享给正在学习如何使用 git 的同学们。

当然这些应对措施并不是唯一的,可能你会有其他更好的应对方法,这也恰恰是 git 这套版本控制系统强大的地方。

原文标题:《Oh shit,git!》
原文地址:https://ohshitgit.com/

01

/ 我刚刚好像搞错了一个很重要的东西,

但是 git 有个神奇的时间机器能帮我复原!/

reflog 是一个非常实用的命令,你可以使用这个命令去找回无意间删除的代码,或者去掉一些刚刚添加的却把仓库里的代码弄坏的内容。

同时也可以拯救一下失败的 merge,或者仅仅是为了回退到之前的版本。

02

/ 我 commit 完才想起来

还有一处小地方要修改!/

当我 commit 完然后跑测试的时候,经常突然发现忘了在等于号前面加空格。

虽然可以把修改过的代码再重新 commit 一下,然后 rebase -i 将两次揉在一起,不过上面的方法会比较快。

03

/ 我要改一下上一个 commit message!/

当你们组对 commit message 有格式要求时,或者当你忘了中英文间要加空格,这个命令能救你狗命。

04

/ 我不小心把本应在新分支上的内容

commit 到 master 了! /

注意:这个指令必须在错误的 commit 后直接执行,如果你已经试了其他的方式,你可能就需要用 git reset HEAD@{number} 来代替 HEAD~ 了。

05

/ 我不小心 commit 到错误的分支上了! /

也有很多人推荐了 cherry-pick 的解决方案,所以选哪个就看你心情了。

06

/ 我执行了 diff 但是啥也没出现 /

Git 不会给通过 add 加入到 staging 区域里面的文件做 diff ,除非你加了 --staged 的标签,别怀疑了这是一个 feature 不是一个 bug,当然对于第一次碰到这个问题的人来说还是有些不好理解的。

07

/ Git 从入门到放弃 /

为了维护最后的尊严 XD

不知道你在使用 git 中有没有遇到过各种令人掀桌的问题呢?

或者作为 git 资深用户有什么可以分享的小技巧呢?

欢迎大家在留言区跟我们互动~

原文:

https://mp.weixin.qq.com/s?src=11&timestamp=1562671312&ver=1718&signature=5IIzKphXRTqXzZMMctGzQcI8fZ1CPOwT0eGEKNAQhpuJRxl*9LP*z5d3rA0SsT8lrYybol4S0D31Y630MgZGd608hIRS0iJLEusplHRbUhel8XdAPeJzbKHkseMFNrC4&new=1​mp.weixin.qq.com

来源:微信公众号
作者:程序员的成长之路

diff git 代码实现_Git 自救指南:这些坑你都跳得出吗?相关推荐

  1. diff git 指定时间_Git 自救指南

    Git 虽然因其分布式管理方式,不完全依赖网络,良好的分支策略,容易部署等优点,已经成为最受欢迎的源代码管理方式.但是一分耕耘一分收获,如果想更好地掌握 git,需要付出大量的学习成本.即使在各种 G ...

  2. diff git 代码实现_Git diff 算法

    在Git中,有四种diff算法,即Myers,Minimal,Patience和Histogram.默认Myers.Minimal是Myers的改进,Histogram是Patience的改进.Mye ...

  3. diff git 指定时间_Git diff 代码比较的高级技巧

    Git diff 代码比较的高级技巧 Git是使用branch来管理不同的功能点开发的,那么我们怎样能比较不同branch的不同呢? 使用 git diff  branch1 branch2 , 就可 ...

  4. git push 的符号笔有什么用_Git自救指南(一)——工欲善其事,必先利其器,基本概念概览...

    虽然大家肯定都知道这两个概念,但是还是要先说两句废话的-- Git -> 分布式版本控制系统,用来记录一个或者多个文件的变化. GitHub -> 代码托管中心,用来提供Git服务的地方. ...

  5. .git文件夹_Git幸存者指南

    > Learn how to use Git to version control a cake recipe- and other things like code! 或如何用Git烤蛋糕 G ...

  6. Git 自救指南:这些坑你都跳得出吗?

    点击蓝色"程序猿DD"关注我哟 加个"星标",不忘签到哦 转载自公众号:扣钉CODING 关注我,回复口令获取可获取独家整理的学习资料: - 001 :领取&l ...

  7. 程序员必须知道的几个Git代码托管平台(转)

    上一篇博客中2015继续任性--不会Git命令,照样玩转Git我们简单的介绍了在VS2013中使用Git,和GitHub客户端的使用.那么使用Git到底有什么好处呢?最为明显的是支持Git代码托管的平 ...

  8. diff git 指定时间_【GIT】从指定分支两个Tag中获取差异文件,进行代码的增量更新...

    介绍 随着DevOps兴起,在做CD代码上线交付时候,代码全量更新是很费时间的.下面代码就可以帮助我们从指定分支两个Tag中获取差异文件,进行代码的增量更新. 环境 Jenkins Git代码管理 获 ...

  9. git学习指南_GIT 学习指南

    创建一个版本库非常简单,首先,选择一个合适的地方,创建一个空目录: $ mkdir learngit $ cd learngit $ pwd /Users/michael/learngit pwd命令 ...

最新文章

  1. 剑指offer:面试题39. 数组中出现次数超过一半的数字
  2. 安装yarn 心得分享
  3. CentOS 配置epel源
  4. 上传到SAP云平台CloudFoundry上的nodejs应用存储的绝对路径
  5. ajax包含mysql吗_php 实例ajax与mysql怎么只查询出一条数据?
  6. 数据结构链表之队列,Python3实现——7
  7. 列赋值为列表_Pandas入门-3-新增数据列操作
  8. Quartz2D之绘制一个简单的机器猫
  9. 字符串比较strcmp
  10. ubuntu之Matlab安装
  11. 给表空间增加数据文件
  12. 抓取scrapy中文文档 第一个Scrapy项目实现
  13. 图新地球为什么很模糊,白球、看图、下载问题深度剖析
  14. movieclip颜色
  15. API接口安全性设计
  16. python基础之布尔运算
  17. centos7 安装 K8S 及启动 POD问题
  18. 如何把Word中艺术字转换为图片
  19. 华为正式加入互联网路由安全规范 MANRS
  20. 急,在线等!!!!!

热门文章

  1. php 国密 签名,关于php国密SM3签名算法
  2. php阻止输入sql,在PHP中全面阻止SQL注入式攻击之三
  3. ubuntu安装java的rpm_ubuntu安装jdk-6u45-linux-x64-rpm.bin
  4. 2018python做图形界面哪个库简单_2018年常见的python编程开发库都有哪些类型
  5. android开发屏幕横放,android-即使从横向旋转到垂直,细节片段也会...
  6. python软件_Python自制照片美颜软件~
  7. python自定义安装哪些不需要_【1】python模块:自定义模块的3种导入方式
  8. Linux创始人数据结构,Linux 通用数据结构说明
  9. java 建造者实际中的用法_java中j建造者模式详解和使用方法
  10. 表格列隐藏_【excel每日提升】Excel隐藏列,不让别人打开!