(六)小技能

一、git reset

当文件版本冲突太多时候,rebase就不太好使了, 没个edit都要fix conflict。那么可以通过reset 来解决。
git reset commitid

图1.1
图1.2

reset到版本B,这时候工作区的修改就是CD的修改内容了,那么冲洗作为一次提交,CD提交就会被干掉,如图1.3所示,直接把E强推到远端即可。

图1.4

二、git commit --amend

前一秒提交了msg,后1s发现提交msg感觉描述不太好想改怎么办?好办,有2种办法。

  1. reset HEAD^,重新提交。
  2. git commit --amend修改提交内容即可。

三、git rebase

有多个记录想要修改怎么办?
好办,git rebase -i commitid
将指针移动到某个版本,将这个版本之后的提交全部重新提交一遍。

图1.5

如图1.5所示,我要修改435781d的内容,那么我就需要rebase到435781d的上一个版本92212dd。

图1.6

如图1.6所示,会将要修改提交消息的版本以及该版本之后的版本由上到下都列出来。
看注释中的几个关键字的含义:
p:当版本指针知指到使用e标记的版本这里,使用该提交,即直接把这个版本的提交作为新的提交,然后继续执行下一个版本。
e: ,当版本指针知指到使用e标记的版本这里则停下来,使用该提交,用户可以输入git commit --amend 来修改提交记录,然后git rebase --continue 继续下一次提交。
r:当版本指针知指到使用e标记的版本这里,使用该提交,但是会停下来给出的是vim编辑提交msg界面,修改msg后继续下一个提交。

s: 压缩,当前指针指向的的提交压缩到上一个次提交内,如将第二行换pick换成s,则ca55e2c提交会和435718d合并到一起。注意:这个会保留ca55e2c的提交记录,保留提交记录如图1.7所示。

图1.7

f: 和s一样,只是不保留提交msg。

四、git stash

当我们修改一些文件之后,没有完成一个功能的开发,这时候保存一次提交又不合适,所以需要暂存。

  1. git stash
    将修改加入到暂存栈中。

  2. git stash list
    暂存的修改可以通过git stash list列出来。如图1.8所示。


    图1.8 暂存列表
  3. git stash pop
    将暂存栈的第一个修改弹出,并应用到工作区。

  4. git stash apply stash@{index}
    应用暂存栈的某个修改。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 以下笔记主要参考gitgot,大致了解git使用和原理。 第一部分我们从个人的视角去研究如何用好Git,并且揭示G...
    carolwhite阅读 7,061评论 0 1
  • git作为时下最流行的代码管理工具,Git权威指南总结了十条喜欢Git的理由: 异地协同工作; 现场版本控制; 重...
    古斟布衣阅读 5,812评论 0 12
  • qingyljoy阅读 1,531评论 0 1
  • 一场秋雨一场寒,经历过两周多的雨水洗礼,德国已进入深秋。 郁达夫在《故都的秋》中写到: 秋天,无论在什么地方的秋天...
    韧青阅读 3,126评论 5 6
  • 坐了这么多年的公交车,这是我见过最诡异的移动电视,再搭配了今天的阴天雷轰轰。。。司机,停车,我要换一辆[捂脸][捂...
    巧琳的世界阅读 1,832评论 0 0

友情链接更多精彩内容