Git 公案

英文原文:Steve Losh - Git Koans

受 Vim Koans 而启发.

沉默

一位 Python 程序员递给 Git 大师她的 ~/.gitconfig 文件。 在那众多行间有着这些代码:

<code>[alias]
; 明确比模糊要好。
; 如果你想合并应该自己做。
pull = pull --ff-only

Git 大师点点头。“git pull origin master”,那位程序员说道。

Git 大师将 master 更新到了最新并自动与那位程序员的修改进行了合并。

“但是 Git 大师,我没有在我的配置文件中声明只能快进么?”她哭诉道。

Git 大师看着她,点点头,什么也没说。

“那么你为什么没有提醒我我的配置文件有问题?”她问道。

Git 大师回应到:“它没有问题。”

几个月后,这名程序员因为一个其他的原因而阅读了 git --help config,茅塞顿开。

把一件事做好

一名 UNIX 程序员正在一个隔间办公室(cubicle farms)里工作。 当她看见 Git 大师走过的时候,她跑过去见他。

“见到您是我的荣幸,Git 大师!”她说道。“我正在学习 UNIX 之道来设计程序使得他们把一件事情做好。我想肯定能从您身上学到很多东西。”

“肯定的”,Git 大师回应道。

“我该如何切换到另一个分支?”那个程序员问道。

“用 git checkout。”

“那么我该如何创建一个分支?”

“用 git checkout。”

“那么我该如何在我的工作目录里更新一个单独的文件的内容,而完全不必操作分支?”

“用 git checkout。”

在得到这三个答案之后,那个程序员幡然醒悟。

只有神灵

一个伟大的历史学家正在试图拆解几个月前出现的一个复杂的错误合并。 他朝拜了 Git 大师并向他寻求帮助。

“Git 大师”,那个历史学家说道,“历史的本质是什么?”

“历史是永恒不变的。之后改写历史是在用一种混杂的存在在进行篡改。”

历史学家点点头并问道:“是不是这就是为什么不鼓励推送衍合的提交?”

“的确”,Git 大师说道。

“精彩绝伦!”历史学家惊叹道。“我有一个有两个祖先的历史合并记录。我怎样才能找到这两个祖先原本在什么分支上?”

“历史是转瞬即逝的”,Git 大师回应道,“你所寻求的答案只有神灵们才能回答。”

历史学家抱住了他的头,就像是启示砸在了他的脑袋上一样。

大地精

一个学徒正在 Git 大师手下学习。 在课程结束的时候他浏览了他的笔记并说道,“大师,我有几个问题。我可以问问么?”

Git 大师点点头。

“我怎么列出所有的标签?”

git tag”,Git 大师回应道。

“我怎么列出所有的远程仓库?”

git remote -v”,Git 大师回应道。

“我怎么列出所有的分支?”

git branch -a”,Git 大师回应道。

“我怎么查看当前分支?”

git rev-parse --abbrev-ref HEAD”,Git 大师回应道。

“我怎么删除一个远程仓库?”

git remote rm”,Git 大师回应道。

“那么我怎么删除一个分支?”

git branch -d”,Git 大师回应道。

学徒思考了一会,然后问道:“这里有很多都能做的更一致,那样的话在写代码的时候就可以更好记了吧?”

Git 大师打了个响指。一个大地精进来活生生吃掉了学徒。 在身后世界中,学徒开悟了。

长与短

Git 大师和一个学徒走在一座桥上。

学徒想要学习 Git 大师广博的知识,说道:“git branch --help”。

Git 大师坐下来给她讲解 git branch 的七种形式和他们可用的选项。

他们继续走。几分钟后他们遇到了一位经验丰富开发者从对面走来。 他向 Git 大师鞠了一躬并问道:“git branch -h”。 Git 大师简洁的告诉了他最常用的分支选项。 开发者感谢了他并继续他的旅程。

“大师”,学徒说道,“命令的长选项与短选项的本质是什么?我以为他们是等价的,但是当那个开发者用 -h 的时候你的回答是跟我问 --help 的时候是不一样的。”

“视角是很重要的”,大师回答道。

学徒迷惑了。她决定测试一下并说道:“git -h branch”。

Git 大师转过去自己跳下了栏杆,把自己摔死在下面的石头上。

看到这个,学徒顿悟了。

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

推荐阅读更多精彩内容

  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,661评论 9 163
  • 本文为 Git教程的学习笔记,教程源自廖雪峰的博客。这是一个由浅入深,学完后能立刻上手的Git教程。另,附上另一本...
    七弦桐语阅读 6,245评论 5 47
  • 学习MySQL入门 个人觉得最快的入门方法就是思维导图啦 所以在这里整理了一下 里面还添加了注释 点击可展开 导出...
    松屋吉野家常客阅读 976评论 1 3
  • 央妈昨天双降。市场一片欢腾,窃以为明天仍然是震荡市场,散户就像沙丁鱼,晃来晃去,主要看大资金的鲨鱼如何动作了。 昨...
    毕钵罗子阅读 146评论 0 1
  • ## 背景 自从有了共享单车后,它就基本上成为了我上下班短距离出行的主要交通工具。被晒黑相比于挤地铁公交我更愿意骑...
    shawnxjf阅读 433评论 0 0