Git 自救指南

Git 虽然因其分布式管理方式,不彻底依赖网络,良好的分支策略,容易部署等优势,已经成为最受欢迎的源代码管理方式。可是一分耕耘一分收获,若是想更好地掌握 git,须要付出大量的学习成本。即便在各类 GUI 的加持下,也不得不说 git 真的很难,在 V2EX 上也常有如何正确使用 git 的讨论,同时在 Stackoverflow 上超过 10w+ 的 git 相关问题也证实了 git 的复杂性。再加上 git 的官方文档也一直存在着 “先有鸡仍是先有蛋” 的问题,虽然文档很是全面,但若是你不知道你遇到的问题叫什么,那么根本就无从查起。git

做为国内领先的研发管理解决方案供应商,CODING 一直致力于在国内普及 git 的使用,为软件研发提供更高效率。本文节选自 Katie Sylor-Miller 在平常工做中所遇到过的让他很头疼的 git 相关问题,并整理了相应的应对措施,在这里分享给正在学习如何使用 git 的同窗们。固然这些应对措施并非惟一的,可能你会有其余更好的应对方法,这也偏偏是 git 这套版本控制系统强大的地方。网络

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

我刚恰好像搞错了一个很重要的东西,可是 git 有个神奇的时间机器能帮我复原!

图片

reflog 是一个很是实用的命令,你可使用这个命令去找回无心间删除的代码,或者去掉一些刚刚添加的却把仓库里的代码弄坏的内容。同时也能够拯救一下失败的 merge,或者仅仅是为了回退到以前的版本。学习

我 commit 完才想起来还有一处小地方要修改!

图片

当我 commit 完而后跑测试的时候,常常忽然发现忘了在等于号前面加空格。虽然能够把修改过的代码再从新 commit 一下,而后 rebase -i 将两次揉在一块儿,不过上面的方法会比较快。测试

我要改一下上一个 commit message!

图片

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

我不当心把本应在新分支上的内容 commit 到 master 了!

图片

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

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

图片

也有不少人推荐了 cherry-pick 的解决方案,因此选哪一个就看你心情了。版本控制

图片

我执行了 diff 可是啥也没出现

图片

Git 不会给经过 add 加入到 staging 区域里面的文件作 diff ,除非你加了 --staged 的标签,别怀疑了这是一个 feature 不是一个 bug,固然对于第一次碰到这个问题的人来讲仍是有些很差理解的。cdn

图片

Git 从入门到放弃

图片

为了维护最后的尊严 XDblog

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

或者做为 git 资深用户有什么能够分享的小技巧呢?

欢迎你们在留言区跟咱们互动~

点击使用 CODING ,体验敏捷研发!

相关文章
相关标签/搜索