开发者社区> 良许Linux> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

十分钟了解 git 那些“不常用”命令(下)

简介: 本文主要是介绍 git 不常用 初期不太会用的命令,希望你看了能理解这些命令的使用,并在平时使用过程中一点点地刻意进行练习,逐步熟练并知道何时需要用到这些命令去解决你的问题。( 我也在不断熟练中)
+关注继续查看

二、git cherry-pick 选择


cherry-pick 可以将提交树上任何地方的提交记录取过来追加到 HEAD 上(只要不是 HEAD 上游的提交就没问题)。


git checkout master; git cherry-pick C2


下图中左、右两张图分别是执行代码前后的样子:


是不是有点眼熟:D 没错 这个和 rebase 的效果蛮像的,这两个命令都可以实现复制提交~

微信图片_20220414171736.jpg


三、git reset VS revert 回滚


git revert HEAD 是用一次新的 commit 来回滚之前的 commit,git reset 是直接向上移动分支,删除一些 commit 看上去像从未提交一样。这两者看似达到的效果是一样的,其实完全不同。


git reset HEAD~1git revert HEAD


如下所见,图 1 是初始状态(需要撤回 C2 提交),图 2 和图 3 是从图 1 分别执行 reset 和 revert 后的结果:


微信图片_20220414171910.png


•  reset执行后,master 分支移回到了 C1;现在我们的本地代码库根本就不知道有 C2 这个提交了
•  revert执行后,在我们要撤销的提交记录 C2 后面多了一个新提交 C2',而 C2' 引入了更改—— 这些更改是用来撤销 C2 这个提交的。也就是说 C2' 的状态与 C1 是相同的。

注意:
•  如果你已经 push 到线上代码库, reset 删除指定 commit 以后, 你 git push 可能导致很多冲突.但是 revert 并不会。•  如果此回退的分支合并主干分支时,reset 恢复部分的代码依然会出现在历史分支里,但是 revert 方向提交的 commit 并不会出现在历史分支里。


# 事例

reset后的123 merge了12345 还是12345

revert后的12345(-3) merge了12345 是12345(-3)


四、HEAD^n 和 HEAD~n 相对引用


HEAD 是一个对当前检出记录的符号引用 —— 也就是指向你正在其基础上进行工作的提交记录。HEAD 总是指向当前分支上最近一次提交记录


(如果想看 HEAD 指向,可以通过 cat .git/HEAD 查看, 如果 HEAD 指向的是一个引用,还可以用 git symbolic-ref HEAD 查看它的指向。)


1. 基础使用:

•  使用 ^ 表示向上移动 个提交记录。n 表示第 个父提交,不填默认是 1(正上方)

•  使用 ~<num> 向上移动多个提交记录
 ~3


注意:操作符还支持链式操,如 HEAD^2~3^2.


延伸用法:移动分支:可以直接使用 -f 选项让分支指向另一个提交。


例如下面的命令会将 master 分支强制指向 HEAD 的第 3 级父提交。


git branch -f master HEAD~3


这次主要就总结了这几种“不常用”git 命令,希望大家和我都可以多多练习,让他变成你需要时就可以自如使用的“常用”命令!

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
十分钟了解 git 那些“不常用”命令(上)
本文主要是介绍 git 不常用 初期不太会用的命令,希望你看了能理解这些命令的使用,并在平时使用过程中一点点地刻意进行练习,逐步熟练并知道何时需要用到这些命令去解决你的问题。( 我也在不断熟练中)
58 0
Git常用命令
Git常用命令
24 0
Git常用命令
Git常用命令
32 0
Git: 常用命令
Git: 常用命令
81 0
25条常用的git命令
25条常用的git命令
49 0
20 个最常用的 Git 命令,你都会用吗?
在这篇文章中,我将介绍在使用 Git 时最常使用的 20 个命令。 以下是这些Git命令:
45 0
Git 常用命令
Git 常用命令
38 0
Git常用命令
<span style="color:rgb(51,51,51); font-family:Arial; font-size:14px; line-height:28px">1. Git概念 </span><br style="color:rgb(51,51,51); font-family:Arial; font-size:14px; line-height:28px; padding:
1096 0
GIT 常用命令
学无止境,精益求精! 十年河东,十年河西,莫欺少年穷! 学历代表你的过去,能力代表你的现在,学习代表你的将来! 本篇博客是转发的别人的,原文地址:http://www.ruanyifeng.com/blog/2015/12/git-cheat-sheet.html 很久没写博客了,都是工作太忙闹的,索性今儿转发一篇!省的博客园太冷清了... Git图形化界面我用的还可以,但是命令就不太会了,索性和大家一起学习下Git命令的用法... 一般来说,日常使用只要记住下图6个命令,就可以了。
1337 0
+关注
良许Linux
机械硕士,自学转行进世界500强外企。
164
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载