❖ Git checkout的平行宇宙

git checkout实际上其实是个平行宇宙时光机,可以带你穿梭到任意一个平行宇宙中,还可以带你穿梭回过去的任意一个时间点。在过去的那个点上,你可以各种观察、修改、删除等,而不对原本时间点产生任何影响。

每一个branch分支,都是一个平行的宇宙,你可以用checkout在两个宇宙之间穿梭。
每一个commit提交,都是现在时间轴上的一个时间点,你可以用checkout回到过去的任何一个时间上。

顺着时光机的思路,你现在身处的时间点,在git里叫HEAD,而当你回到过去时,你的时间点就叫做detached HEAD,因为你已经是"detached reality"脱离现实了。

再来让它容易记一点,我们可以叫checkout为一个Jumper
它可以跳来跳去,跳到任何地方。你可以用它来跳到别的分支,还可以跳到过去的任何点,总之git里面的它都可以跳过去。所以每次我们用git checkout时,我们可以心里念git 跳到,这样就好理解多了!

如果是git checkout 时间点,那么这就是一个回到过去的跳跃;
如果是git checkout 宇宙名,那么这就是一个平行宇宙的跨越。

其中时间点,就是每次commit的sha值,可以在git log中看到;
宇宙名,指的就是每个branch的名字,可以在git branch中看到。

那么如果我checkout跳到过去,还改变了些东西,会发生什么?

可以肯定的是,不会发生时空扭曲或祖母悖论。

现在我试一试用git checkout 时间点, git返回了如下信息:

image

意思就是告知我,现在已经和现实分离,随便玩。“现实”就是HEAD,所以现实分离状态就是detached HEAD。不管怎么样都可以,add, rm, commit等等。
但是,如果做了些实验发现挺好的,想保留,那么就要新建立一个分支来保持这些变动。然后呢,再让这个分支去和主流合并,这之后就是正常merge流程了。

那么回到过去,修修改改后,想保存并建立分支需要用如下命令:

git checkout -b <new-branch-name>

实际上它是把两个单独的命令合到一起,一个是git branch <name>建立新分支并保存当前的改变,和另一个git checkout <name>跳转到该分支,这样一步到位还是挺方便的。

返回到现在进行时

当跳跃到过去到某个点时,它是绝对的detached Head状态。
在各种时间跳跃后,简单一句git checkout master就可以跳回到现在进行时了。当然,也可以是git checkout 某分支名跳跃到任何一个平行宇宙的现在进行时。

Git checkout 的妙用:撤销更改

git checkout 某文件名则可以让某个自己不满意的文件,回到最近一个时间点,即最近一个commit提交。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,306评论 4 370
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,657评论 2 307
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 111,928评论 0 254
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,688评论 0 220
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,105评论 3 295
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,024评论 1 225
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,159评论 2 318
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,937评论 0 212
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,689评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,851评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,325评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,651评论 3 263
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,364评论 3 244
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,192评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,985评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,154评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,955评论 2 279

推荐阅读更多精彩内容

  • Git常用语法 [TOC] Git简介 描述 ​ Git(读音为/gɪt/。)是一个开源的分布式版本控制系统,...
    君惜丶阅读 3,446评论 0 13
  • 照片是晚上拍的,质量不太好,很久没来更新了,或许喜欢的人不多,但还是想发出来。多少都有些瑕疵,人无完人,画无完画。...
    艾小咩阅读 222评论 0 3
  • 我原以为这个题目根本就不用回答,答案一目了然。然而上周经历了一些事情听了某人匪夷所思的想法,我觉得有必要来好好回答...
    一蓑烟雨任平生0801阅读 301评论 1 1
  • 为了顺应市场,各大车企竞相研发SUV车型,国内SUV市场也是相当有前景的。而圣达菲PLUS这款车,可以说是一匹黑马...
    乐天咕阅读 182评论 0 0
  • 黄昏归故里, 夕阳伴月明。 夜阑同唱和, 醉乐小山城。 附瑾檀原诗 夜吟古风 好歌故乡远,灯昏墨色明。 夜来风吹雨...
    艾思阅读 310评论 12 35