游戏过程中少不了网上查找资料,man,难度4以后不停的hint。
通关后对git的了解又加深了许多。
取连接名时很是矛盾,写完博客后还是将链接中的walkthrough改为了cheat sheet。
希望大家不需要使用到这篇博客吧。
因关卡随时处于更新状态,可能会稍有不同
- 最后更新时间2012-11-14
- 最后更新时间2013-05-17
- 最后更新时间2016-02-25
准备
安装Githug:$ gem install githug。
安装完成后直接执行$ githug开始游戏,同一条命令进入下一关。
$ githug hint查看过关提示,
当操作错误无法过关时,可以$ githug reset重置当前关卡。
开始
0
1 初始化git项目
2 配置git用户信息
或者直接在.git/config文件里添加
回答时分别输入xxx和xxx@gmail.com
- 扩展
使用--global参数修改本机全局设置
- 问题
命令行里不要带等号$ git config user.name = xxx, 否则去文件里查时会发现等号变成值name = =。 (之前好像可以用的?待解决)
3 stage一个文件
4 提交已stage的文件
5 检出一个已有项目
6 检出项目并重命名
7 配置忽略文件规则
使用!可从忽略文件中排除。
在.gitignore文件里添加
8 忽略文件中排除特定名称
在.gitignore文件里添加
9 查看状态
$ git status查看, 得到答案为database.yml
10 查看状态,分辨状态
$ git status查看。分为:可以被commit的,修改后但未stage的,新文件从未被stage的。
得到答案为2
11 删除文件
$ git status查看,发现被删文件名为deleteme.rb
12 将文件移出git但不删除文件
13 保存项目当前状态但不提交(新,实用)
用于保存中间态,方便临时切换分支,用git stash list可查看git stash apply可取出(多个时后面可加stash@{2}之类的名字)。
14 重命名文件
15 修改目录结构
16 查看提交历史
$ git log查看提交历史记录,答案为commit后长字符串的前7位
17 tag
18 推送 tag
因为默认push不会处理tag
19 将新修改并入上一次提交
写完注释后保存退出(vi是:qw,应该都会吧)
20 修改提交时间
使用--date参数将时间修改到指定时间
21 unstage一个文件
22 取消上一次提交
23 恢复文件修改
24 查看remote信息
$ tail .git/config查看remote信息, 答案为my_remote_repo (应该有其他方法,直接通过命令)
25 查看remote链接
同上,答案为https://github.com/githug/not_a_repo (有其他方法)
26 pull
27 关联远程库(新项目必备)
28 合并:rebase(与merge做对比)
29 查看变动
通过$ git diff app.rb查看文件改动,
显示行号为23,改动在下面第3行,所以答案为26。
30 跟踪具体代码行作者
$ git blame config.rb查看修改记录,发现密码出现在第五行。 在这行的左边可以看到提交者为Spider Man(卖萌了)。
31 新建分支
32 新建并进入分支
33 按标签检出
34 仅按标签检出
当标签和分支名相同时,需要指定标签检出
35 按版本编号检出至新分支
查看提交历史,找到第二条的id,输入时只需要输入前几位即可
36 删除分支
37 推送分支
38 合并分支
39 拉取分支
40 rebase分支
41 rebase_onto
42 压缩空间
42 仅从分支合并指定提交
$ git branch查看分支列表,得到分支名。
$ git log new-feature查看分支提交记录。 最后合并:
43 全项目搜索
这个和 git 无关,为 Linux 命令行技巧。
可以看到有4条,答案为4。
44 修改历史提交日志
查看历史记录,发现错误在倒数第二次提交上
进入编辑页面,将需要改动的行(第一行)的pick改为reword (注意,只需要通过reword来标记,不要修改拼写)。 保存退出后在弹出的第二个窗口里修改拼写错误commmit改为commit。
45 合并历史提交(清洁日志,实用)
查看历史记录发现最后3次都为同一个文件的修改,可以合并
将弹出编辑页的第2、3、4行的pick改为squash, 第二个弹出页直接保存退出即可。
46 从分支合并时仅保存为一次提交
47 更改历史提交顺序
查看历史记录发现最后两次提交顺序错误
然后在弹出编辑页的前两行顺序调换。
48 二叉树排错(很强大,侧面看出测试驱动重要性) *
$ git log --reverse -p prog.rb查看最初一次为正确提交,版本号为f608824888
日志里…… is the first bad commit 所以回答18ed2ac
49 仅stage一个文件的一部分 *
查看文件可知需要stage的是第二行(…the first feature)。
出现提示如何处理,输入e来编辑提交内容,
在弹出编辑页面删除第5行(…the first feature), 因为不在本次stage操作内,保存退出。
50 查看操作历史
查看到日志第2行...checkout: moving from solve_world_hunger to kill_the_batman...
51 回滚某次提交历史
查看历史记录,发现倒数第二次提交需要取消
直接保存并退出
52 通过操作日志,挽救git reset --hard HEAD^的误操作
$ git reflog查看日志,发现需要回覆至版本804db65(每次版本号可能不同),或直接写HEAD@{1}。
53 合并分支并处理冲突
编辑poem.txt文件,处理冲突
通过一款结合游戏元素的Git实战应用Githug,玩家可以在游戏中学习并掌握Git的基本操作及高级特性,包括初始化项目、文件管理、分支管理、合并冲突等。
1316

被折叠的 条评论
为什么被折叠?



