如何优雅的使用Git?

翻到了从前在师哥那里偷来的图,当时就被告诫:记住,这是常识。
图如下:


常用的git命令大家应该都熟悉,能满足日常的工作需要就行,当然如果要很熟练的使用,需要了解的还有很多。在此记录一下各处搜刮来的有趣的网站以及思维导图、命令行啥的,当笔记整理了吧。

目录

思维导图

Git命令速查表

一个有趣的网站


思维导图

 


传说中鹅厂程序猿常用的 Git 命令思维导图,码住就当记住了。。。
不清晰还可以码 原图

 

Git命令速查表

 


本还有更多整理的,但是不是太多了。。。虽然很整齐很好看。。。
原链接“git命令大全

 

一个有趣的网站


这个网站也是搜刮来的啦,叫 Oh shit, git!
英文版阅读可能有点小小的障碍,附上通俗翻译,为了使场景描述更加生动,因此加入了新手女神与高级舔狗两个角色来配合讲解。(我不会说这个翻译也是搜过来的滴!)

 

女神:哎呀,刚刚有个地方搞错了,怎么重新来过呢?

女神莫慌,Git 的牛逼之处,在于它自带时光机效果,能让你在项目的历史代码中任意穿梭。

如果项目的某一处地方它自己不小心坏掉了,不妨试下下面的这行命令:

$ git reflog

这条命令能列出你在 Git 上的所有操作记录,你只要找到 HEAD@{index} 前面所对应的操作索引,并使用下面命令即可:

$ git reset HEAD@{index}

注:使用时需将HEAD@{index}替换为对应索引。

女神:想改个小东西,但代码不小心提交(commit)了,这可咋整?

这个简单,首先,添加下当前已改动的代码:

$ git add

然后,运行下面这条命令,它就会把你刚刚添加的代码合并到最后一次提交上了:

$ git commit --amend

女神:哼!刚刚写的提交历史写得不够好,我想重写一下!

好的,还是上面提到过的那条代码,运行一下,就可以重写提交历史啦:

$ git commit --amend

女神:这下惨了,我刚刚不小心把新分支的代码提交到主分支上了!

女神别着急,我们一步步来,你先创建个新分支(some-new-branch-name):

$ git branch some-new-branch-name

然后把刚才的提交从主分支中移除:

$ git reset HEAD~ --hard

需要注意的是,上面的代码只会切换到最后一条提交记录上,如果你已跑到其它提交记录上怎么办?没关系,你可以用 git reset HEAD@{number} 再跑回来。

等你跑回来之后,我们再切换到新分支上:

$ git checkout some-new-branch-name

好了,完成啦,现在主分支干干净净,刚刚不小心提交的代码也被移到新分支上了。

需要注意的是,上面的代码只对本地仓库有效,如果你已经把代码提交到远程仓库上,那就得跟队友商量下解决方案了。

啥?我就是你队友?这可真让我受宠若惊嘿嘿嘿。不过没事,等下我帮你在线上主分支上 reset 然后 push -f 一下就好啦~

 

女神:完蛋了,我把代码提交到错误的分支上了!

别怕别怕,有我在呢。

我们先撤销最后一次提交,但保留变更代码:

$ git reset HEAD~ --soft
$ git stash

再切到你想要提交的正确分支(name-of-the-correct-branch)上,并把变更代码提交上去:

$ git checkout name-of-the-correct-branch
$ git stash pop
$ git add .
$ git commit -m "your message here"

OK,到这里就搞定了。

如果想要逼格高点,也可以用 cherry-pick 这个命令来完成上面那些操作。具体的操作步骤如下。

首先,切换到正确的分支上:

$ git checkout name-of-the-correct-branch

然后使用 cherry-pick 来获取最新一条提交记录:

$ git cherry-pick master

最后再把主分支上那条提交错误的记录删除:

$ git checkout master
$ git reset HEAD~ —-hard

女神:咦?为啥我运行 diff 后啥都没有?

遇到这种情况,应该是文件没有加入到暂存区的缘故。解决方案很简单,咱们要么把文件加入到暂存区,要么就直接使用下面这条命令:

$ git diff --staged

这样,就可以看到未存入暂存区文件的 diff 效果啦。

 

女神:这项目怎么这么乱!好烦呐!我不玩了!

别气别气,别气坏了身子就不好了,么么哒

如果本地代码仓库把自己折腾得乱七八糟,不用怕,用下面这招,一击必杀:

$ cd ..
$ sudo rm -r fucking-git-repo-dir
$ git clone https://some.github.url/fucking-git-repo-dir.git
$ cd fucking-git-repo-dir

女神:好啦,我没什么问题了,谢谢你哦~

哦买噶,我太幸福了吧~

 

 

emmmmm。。。花里胡哨的,原网站似乎有更新,啊,反正挺好玩的,是吧。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值