Git 自救指南:这些坑你都跳得出吗?
菜单栏中添加我微信,私聊【加群】拉你入微信学习交流群
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 资深用户有什么可以分享的小技巧呢?
欢迎大家在留言区跟我们互动~
·END·
程序员的成长之路
路虽远,行则必至
本文原发于 同名微信公众号「程序员的成长之路」,回复「1024」你懂得,给个赞呗。
回复 [ 520 ] 领取程序员最佳学习方式
回复 [ 256 ] 查看 Java 程序员成长规划
Git 自救指南:这些坑你都跳得出吗?的更多相关文章
- Git 自救指南
Git 虽然因其分布式管理方式,不完全依赖网络,良好的分支策略,容易部署等优点,已经成为最受欢迎的源代码管理方式.但是一分耕耘一分收获,如果想更好地掌握 git,需要付出大量的学习成本.即使在各种 G ...
- 【转】git - 简明指南
git - 简明指南 助你入门 git 的简明指南,木有高深内容 ;) 作者:罗杰·杜德勒 感谢:@tfnico, @fhd 和 Namics其他语言 english, deutsch, españo ...
- 发布系统Git使用指南 - the Git Way to Use Git
发布系统Git使用指南 --the Git Way to Use Git 背景 有文章曾归纳,Git是一套内容寻址文件系统,意思是,Git的核心是存储键值对^[1]^.显然,这样的形式不利于普通人 ...
- 记录:mac的浏览器访问任何域名、网址都跳转到本地127.0.0.1或固定网址
新年上班第一天,刚开机就遇到了个小坑,问题是这样,打开浏览器,输入任何网址都跳转到本地的一个项目,该项目在本地Apache配置下,监听的端口是8888,本机访问的形式是127.0.0.1:8888. ...
- git——简易指南
Git对于我来说,只知道是一个版本控制器,类似于乌龟的svn.其中也仅仅会几个常的命令,比如说“更新git pull”.“提交git push”等等,因为记得当初使用的时候,师傅告诉我,对于你不懂这个 ...
- php防盗链,php ci在control里面控制除了自己站内的链接点击跳转,其他来源的都跳到站内页面
php防盗链,php ci在control里面控制除了自己站内的链接点击跳转,其他来源的都跳到站内页面 $route['jump/(:any)/(:any)'] = "index/jump/ ...
- git - 简易指南
http://www.bootcss.com/p/git-guide/ git - 简易指南
- 如何加入别人的Git项目——Git Fork指南
如何加入别人的Git项目--Git Fork指南 首先,在网页打开别人Git上的项目,点击右上角的.下图因为Fork过了,所以灰了. 随即弹出如下窗口,当然选择确定. 于是,我们在在自己的项目列表可以 ...
- Git实战指南----跟着haibiscuit学Git(第二篇)
笔名: haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=re ...
随机推荐
- Python面向对象之私有属性和私有方法
01. 应用场景及定义方式 应用场景 在实际开发中,对象 的 某些属性或方法 可能只希望 在对象的内部被使用,而 不希望在外部被访问到 私有属性 就是 对象 不希望公开的 属性 私有方法 就是 对象 ...
- 2019 乐游网络java面试笔试题 (含面试题解析)
本人5年开发经验.18年年底开始跑路找工作,在互联网寒冬下成功拿到阿里巴巴.今日头条.乐游网络等公司offer,岗位是Java后端开发,因为发展原因最终选择去了乐游网络,入职一年时间了,也成为了面 ...
- SpringMVC+EasyUI实现页面左侧导航菜单
1. 效果图展示 2. 工程目录结构 注意: webapp下的resources目录放置easyui和js(jQuery文件是另外的) 3. 代码 index.j ...
- MTSC2019-深圳站 议题征集
议题截止时间 11月初 议题投递地址 topic@testerhome.com 臣一路走来,没有敌人,看见的都是朋友和师长 —司马懿 关于中国移动互联网测试大会 MTSC 大会(中国移动互联网测试 ...
- Content-Type属性的取值和作用
1.Content-Type 的值类型: 1.1 application/json:消息主体是序列化后的 JSON 字符串 1.2 application/x-www-form-urlencoded: ...
- 91.用js遍历原生json数据
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8 ...
- 通过nginx部署前端代码实现前后端分离
实现前后端分离,可以让前后端独立开发.独立部署.独立单测,双方通过JSON进行数据交互. 对于前端开发人员来说,不用每次调试都需要启动或配置Java/Tomcat运行环境:对于后端开发人员来说 ,也不 ...
- java集合学习(2):Map和HashMap
Map接口 java.util 中的集合类包含 Java 中某些最常用的类.最常用的集合类是 List 和 Map. Map 是一种键-值对(key-value)集合,Map 集合中的每一个元素都包含 ...
- java OutputStream的使用
package cn.kongxh.io3; import java.io.File ;import java.io.OutputStream ;import java.io.FileOutputSt ...
- DRF(django-rest_framework)框架
drf执行流程,APIView,Request -继承APIView(继承自view),重写了dispatch方法 -dispatch方法:1 request对象,被重新封装了,成了新的request ...