码迷,mamicode.com
首页 > 其他好文 > 详细

git 进阶

时间:2018-01-24 22:16:29      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:pre   规范   进阶   方便   使用   har   div   代码   gpo   

由一个个case组成:

case 1

场景

在前一家公司的时候遇到过一次,没有完美解决,今天又重现了:我将部分代码从仓库A拆出来,放到新仓库B中,因为图方便,我直接使用了copy命令,但是!!!没有想起来隐藏的.git目录,于是新仓库B的初次提交直接更新到了A上。

解决办法

上一次遇到类似的问题,我是直接一个reset --hard 到错误 commit 的前一个 commit,但是自此之后,恶梦开始:因为我们组同学较多,多数从主分支切的代码已经是被污染过的,于是经常带着错误的commit回归!!!
我左思右想,无法找到合适的办法,好在此次开发的同学不多——并且各自切出去的分支都是没有被污染的,我手动reset了所有被污染的分支,再让同学们将已经提交的在污染之后的功能手动合并到主分支上。左右算是解决了。

这种错误的commit没有及时发现,发现时已经在后面提交了许多正常commit的情况应该不算少见,如何在发现之后方便地解决问题?我目前想到的就是使用git rebase的提交规范,保证大家的commit都是连续的,这样在解决此类错误的相对来说还是比较方便的。

case 2

场景

本地 reset 过猛,跑过头了,像以前我可能直接就把本地的仓库直接删了,再下载一个,今天忽然觉得太low了。于是我搜了下,发现一个很好玩的命令,git reflog

git reflog

git reflog 记录了本地git上的所有操作,并且有对应的索引,可以直接使用git reset 索引的方式,回归到对应的操作。

140c8eb HEAD@{0}: reset: moving to 140c8ebcf6d

使用 140c8eb 和 Head@{0}都可以回归

git 进阶

标签:pre   规范   进阶   方便   使用   har   div   代码   gpo   

原文地址:https://www.cnblogs.com/magma/p/8343215.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!