git
› Pro Git
› Atlassian Git Tutorial
› Pro Git 简体中文翻译
› GitX
seabornlee
V2EX  ›  git

闯过这 54 关,点亮你的 Git 技能树

  seabornlee · Dec 30, 2015 · 14656 views
This topic created in 3962 days ago, the information mentioned may be changed or developed.

开篇

如今, Git 大行其道,颇有一统天下之势。
如果你的技能树上 Git 和 Github 的图标还没有点亮的话,你都不好意思说你是程序员。
别说互联网企业,我接触到的许多传统企业都在从 SVN , Clear Case 等迁移到 Git 上,甚至大厂还会有一个团队去定制适合自己企业的 Git 服务器。

很多人简历上写的「精通 Git 与 Github 」,但如果你问他熟悉到什么程度的话,回答通常是「就是会用常用的 add,commit,push 操作」。

但工作中我们会遇到一些更加复杂的场景:

  • 忽略某些文件
  • 创建,删除分支
  • 找到最后修改某行代码的人
  • commit 后发现里边包含一个不应该提交的文件
  • commit 后发现少提交了一些文件
  • 一个文件中的多次有改动,怎么做到只提交其中的一部分?
  • 怎样整理提交记录使其更加整洁?
  • 快速定位是哪一次提交引入了 bug
  • ...

作为一线程序员,我们要如何快速学习 Git 以发挥其最大威力呢?

今天我就要向大家介绍一个工具,准确说应该是「游戏」,名字叫「 githug 」,它把平常可能遇到的一些场景都实例化,变成一个一个的关卡,一共有 55 个关卡:

#1: init
#2: config
#3: add
#4: commit
#5: clone
#6: clone_to_folder
#7: ignore
#8: include
#9: status
#10: number_of_files_committed
#11: rm
#12: rm_cached
#13: stash
#14: rename
#15: restructure
#16: log
#17: tag
#18: push_tags
#19: commit_amend
#20: commit_in_future
#21: reset
#22: reset_soft
#23: checkout_file
#24: remote
#25: remote_url
#26: pull
#27: remote_add
#28: push
#29: diff
#30: blame
#31: branch
#32: checkout
#33: checkout_tag
#34: checkout_tag_over_branch
#35: branch_at
#36: delete_branch
#37: push_branch
#38: merge
#39: fetch
#40: rebase
#41: repack
#42: cherry-pick
#43: grep
#44: rename_commit
#45: squash
#46: merge_squash
#47: reorder
#48: bisect
#49: stage_lines
#50: find_old_branch
#51: revert
#52: restore
#53: conflict
#54: submodule
#55: contribute

安装

首先我们需要来安装这个游戏,githug 是用 Ruby 编写的,可通过如下命令安装:
gem install githug

如果遇到权限问题,请加上sudo:
sudo gem install githug

安装成功后,在 Terminal 里进入你常用的目录,输入githug,会提示游戏目录不存在,是否要创建一个,输入y然后回车:

根据提示cd git_hug 进入游戏目录,准备开始游戏。

基本命令

在开始前我们还需要了解游戏的一些基本操作:

  • play - 默认命令,检查是否过关
  • hint - 显示过关提示
  • reset - 重启本关,或者重启到指定的某关
  • levels - 显示关卡列表

来试一下,githug reset:

示例

我以第一关为例子给大家演示一下玩法。

第一关的名称是:init,提示是:「一个新目录 git_hug 被创建了,请把它初始化为一个空仓库」。
假设现在我不知道该怎么过关,我可以查看过关提示:

指示是:「你可以输入 git 命令来查看 git 命令列表」。

看最后一行,原来用 git init 就可以初始化一个空仓库,接着输入 githug 进行过关检测:

太棒了!顺利进入第二关!

怎么样?明白了吗?后面的 54 关就靠你自己了哦!

友情提示

在闯关过程中,尽量使用 githug hint,git help subcommand 获取帮助,也可以根据下面的两个教程来系统学习。
猴子都能懂的 git 入门
廖雪峰的 git 教程

为保大家都能顺利通关,学到所有的知识点,接下来我会写过关攻略,详细介绍每一关的玩法。
并且我不会直接给答案,而是演示整个过关的过程。

祝你好运!我们明天见。

56 replies  •  2016-05-16 15:20:56 +08:00
LMkillme
LMkillme
Dec 30, 2015
1
加入收藏,感谢!
martinmo
martinmo
Dec 30, 2015 via iPhone
2
不错,支持一下
XianZaiZhuCe
XianZaiZhuCe
Dec 30, 2015
3
已收藏
shiny
shiny
PRO
Dec 30, 2015❤️2
4
大家千万别加入了收藏然后就再也不看了 😂
sevenphp
sevenphp
Dec 30, 2015
5
学习一下
warDoggie
warDoggie
Dec 30, 2015 via iPhone
6
收藏 收藏
stillwaiting
stillwaiting
Dec 30, 2015
7
感谢~
Caratpine
Caratpine
Dec 30, 2015
8
支持,谢谢
zhpech
zhpech
Dec 30, 2015
9
闯关中……
hyq
hyq
Dec 30, 2015
10
刚通关,感觉 53 关的描述不太好懂,看了判断的源码才知道要我做什么
unsuey
unsuey
Dec 30, 2015
11
Thanks
tanywei
tanywei
Dec 30, 2015
12
收藏了地址 谢谢。
xrlin
xrlin
Dec 30, 2015
13
支持,很不错的东西。
quietin
quietin
Dec 30, 2015
14
前排支持
a4e9y47
a4e9y47
Dec 30, 2015
15
哈哈哈好厉害的东西 支持~
acoldfox
acoldfox
Dec 30, 2015 via iPhone
16
不错哇,很有想法
airqj
airqj
Dec 30, 2015 via Android
17
好东西
aprikyblue
aprikyblue
Dec 31, 2015
18
收藏
shenxian
shenxian
Dec 31, 2015
19
大家千万别加入了收藏然后就再也不看了 😂 +1
fhefh
fhefh
Dec 31, 2015
20
mark~~
timothyye
timothyye
Dec 31, 2015 via Android
21
Awesome!
seabornlee
seabornlee
OP
Dec 31, 2015
22
@hyq 赞!
Phariel
Phariel
Dec 31, 2015 via iPhone
23
一颗赛艇!明天上班最后一天没什么事了玩玩!
imlonghao
imlonghao
Dec 31, 2015
24
通关了,除了 55
shajiquan
shajiquan
Dec 31, 2015
25
@hyq 同感。
Andiry
Andiry
Dec 31, 2015
26
通关了,可惜我最常用的几个命令: format-patch, apply, am 没有用到
theblackswan
theblackswan
Dec 31, 2015
27
点赞收藏
Ericwei1990
Ericwei1990
Dec 31, 2015
28
赞一个,太棒了,是时候增加 git 的技能树
ichou
ichou
Dec 31, 2015
29
给组里的小伙伴刷一下
PS: 拿去做面试题会怎么样?
harry890829
harry890829
Dec 31, 2015
30
这个真是不错,最近正好在看 Pro git ,练习一下
greatcl
greatcl
Dec 31, 2015 via Android
31
收藏学习
JerningChan
JerningChan
Dec 31, 2015
32
这个很不错哦!!
虽然我不是程序员,但是,有空玩玩各种语言 / 工具的小游戏很不错呀!!
SourceMan
SourceMan
Dec 31, 2015
33
已加入 awesome-git 豪华午餐中
lynnworld
lynnworld
Dec 31, 2015
34
已完成~
zhangchioulin
zhangchioulin
Dec 31, 2015
35
回家试试
chaoxn
chaoxn
Dec 31, 2015
36
非常不错,已经开撸,每一关都是一个新的 repo
ishamo
ishamo
Dec 31, 2015
37
20 关不会,不懂神马意思,求支招。
maxam0128
maxam0128
Dec 31, 2015
38
不错
inmyfree
inmyfree
Dec 31, 2015
39
mark
home3k
home3k
Dec 31, 2015
40
mark. 晚上试下.
jzk
jzk
Dec 31, 2015
41
做完了。。 的确是看每个人的。。。常用的命令都木有 cover 到
stupil
stupil
Dec 31, 2015
42
不错
slixurd
slixurd
Dec 31, 2015
43
已做完。把本机时间修改 COMMIT 后再改回来的那关好坑....
Twinkle
Twinkle
Dec 31, 2015
44
不会的时候 zsh 帮我补全了好多 >.>
ipeony
ipeony
Dec 31, 2015
45
学习 git 的正确姿势,感谢
zhpech
zhpech
Dec 31, 2015
46
@ishamo 需要给提交设定未来的某一个时间 git commit 中有个--date
chaoxn
chaoxn
Dec 31, 2015
47
@ishamo 加个未来的日期
git commit --date=2016.01.01 -m"add future date"
popo233
popo233
Dec 31, 2015
48
通关了,学到了几个新姿势..
lazyyz
lazyyz
Dec 31, 2015
49
收藏+ 1
loodeer
loodeer
Jan 4, 2016
50
感谢分享,好东西
sniperhgy
sniperhgy
Jan 14, 2016
51
@seabornlee 楼主你好,我使用 Windows 7 ,安装了 Ruby 2.2.0 Windows 版本,请问怎样进行 githug 的安装?捣鼓了半天也没有弄出来,进入 githug 的目录下面输入 gem install githug ,出现提示:
D:\VMware-ShareFolder\Study\githug>gem install githug
ERROR: Could not find a valid gem 'githug' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - Errno::ECONNREFUS
ED: No connection could be made because the target machine actively refused it.
- connect(2) for "api.rubygems.org" port 443 ( https://api.rubygems.org/specs.4.8
.gz)
seabornlee
seabornlee
OP
Jan 15, 2016
52
@sniperhgy 用淘宝源试试: https://ruby.taobao.org/
sniperhgy
sniperhgy
Jan 15, 2016
53
@seabornlee 感谢回复^_^。但是我已经从 Github 上面下载了 Githug 的完整代码包,为何还需要从网上下载一些资源呢?
seabornlee
seabornlee
OP
Jan 15, 2016
54
@sniperhgy 因为它有一些依赖,不在源码里的。
sniperhgy
sniperhgy
Jan 15, 2016
55
@seabornlee 原来如此,非常感谢。还有一点需要和楼主确认一下安装步骤:在 Windows 平台,安装了 Ruby ,然后下载 githug 并解压缩到任意英文目录下,然后在 cmd 中进入到 githug 的目录里面输入 gem install githug ?
hantsy
hantsy
May 16, 2016❤️1
56
支持一下。

分支是 GIT 的一个最基本的特性,我所遇到的一些技术人员大都是把 GIT 当成 SVN 来用,很多连 Branch 都没用。连写 Comment 描述提交内容这种简单的事都是敷衍。更谈不上 Github Flow ( Fork , Branch , PR , Code Review ), CI , CD 了。
About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2956 Online   Highest 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 161ms · UTC 12:51 · PVG 20:51 · LAX 04:51 · JFK 07:51
♥ Do have faith in what you're doing.