githug 闯关记录

地址

githug是一个练习git技巧的小游戏.
它需要rubygem 来安装.
以下是我对其闯关的记录

安装好githug后,运行githug play来进行第一关

Level-1
init: 进入git_hug 文件夹,运行git init

 $cd git_hug
 $git init

level-2
config: 设置git用户的 name email

 $git config --global user.name "mopel"
 $git config --global user.email "amosbake@gmail.com"

level-3
add :添加新增文件"README"至待提交区

 $git add "README"

level-4
commit: 提交文件"REDME"

 $git commit -m'level-4'

level-5
clone: 将项目'cloneme' clone到本地

 $git clone https://github.com/Gazler/cloneme

level-6
clone: 将项目'cloneme' clone到指定文件夹

 $git clone https://github.com/Gazler/cloneme "my_clone_repo"

level-7
ignore: 添加忽略
solution: 新增.gitignore 文件 并添加规则 '*.swp'

level-8
include: 忽略后缀为.a的文件,但lib.a除外
编辑.gitignore如下

 .a
 !lib.a

level-9
status: 找出未加入提交区的文件

 $git status

level-10
status: 查看提交区的信息 -v 查看新增文件,待提交文件等信息

 $git status -v

level-11
rm:删除移除提交区的文件

 $git status
 $rm deleteme.rb

level-12
-cache: 从提交区移除文件 --cached 保留文件 -f 删除文件

 $git rm --cached deleteme.rb

level-13
stash: 保存修改,但不保存到提交区

 $git stash

level-14
rename: 为文件重命名

 $git mv "oldfile.txt" "newfile.txt"

level-15
move: 将文件转移位置

 $git mkdir src
 $git mv "about.html" src

level-16
log: 查看提交记录

 $git log

level-17,18
tag: 为提交打标签

 $git tag
 $git log -a newtag -m"new_tag"

leve-19
commit-amend 修改上次提交

 $git commit --amend -m"amend"

level-20
commit-date 修改提交时间

 $git commit -m"new date" --date 2016/2/1

level-21
reset: 修改提交

 $git reset HEAD to_commit_second.rb

level-22
reset-soft: 取消上一次提交,并保留提交后的修改

 $git reset --soft HEAD^

level-23
checkout-file: 将特定文件重置到上一次提交的状态

 $git checkout config.rb

level-24
remote: 查看远程仓库

 $git remote

level-25
remote-url:查看远程仓库链接

 $git remote-v

level-26
pull:远程仓库拉取数据到本地分支

 $git pull origin master

level-27
remote_add:添加远程仓库

 $git remote add origin https://github.com/githug/githug

level-28
push:远程仓库有新提交,先rebase然后push你的提交

 $git pull --rebase
 $git push

level-29
diff:显示版本提交差异

 $git diff app.rb

tip:显示@@ -23,7 +23.7 @@ 指下一行的行数

level-30
blame:逐行显示修改历史及提交者

 $git blame config.rb

level-31
branch:新建分支

 $git branch test_code

level-32
checkout_branch:切换到新建分支

 $git checkout -b my_branch

level-33,34
checkout_tag:切换到已标记提交

 $git checkout 'v1.2'
 $git checkout tags/v1.2 //存在同名分支

level-35
branch_commit: 将已有提交切换到新建分支

 $git branch test_branch 57bf12a4 //最后为提交的哈希值

level-36
delete_branch: 删除分支

 $git branch -d delete_me

level-37
remote_push: 推送单一分支到远端

 $git push origin test_branch 

level-38
merge: 合并其他分支

 $git merge feature

level-39
fetch: 查看远程仓库情况

 $git fetch

level-40
rebase: 合并分叉分支,使分叉历史消失

 $git checkout feature
 $git merge master

level-41
repack: 打包仓库 -d:移除多余的包

 $git repack -d

level-42
cherry-pick: 添加某个或多个commit到现有分支中
场景:增加新功能,但不沿用新功能分支中的其他提交

 $git cherry-pick ca32a6da //sha-1值

level-43
grep: 查找库中某段文字
场景:查看有多少TODO

 $git grep TODO -n//附加行数

level-44
rename_commit: 修改以往提交commit的信息

 $git log //查找目标commit的sha-1值
 $git rebase -i 4e9934f //进入rebase的修改vim界面
 //将目标commit之前的'pick' 改为 'reword'
 //进入修改提交信息vim,进行修改

level-45
combie_commit: 合并提交

 $git log //查看需要合并的提交
 $git rebase -i HEAD~3 //rebase 到合并提交之前
 //在修改vim界面 将需要合并的提交之前的'pick'改为'squash'或's'
 //写入新的提交信息

level-46
squash_merge: 合并merge

 $git merge long-feature-branch --squash
 //提示需要进行提交来继续
 $git commit -m'all'

level-47
reorder: 修改提交顺序

 $git log //查看需要合并的提交
 $git rebase -i HEAD~3 //rebase 到修改提交之前
 //在修改vim界面,调整commit顺序

level-48
bisect: 查找错误提交
场景: 发现在提交中有一个错误提交,用测试方法'run test' 来找出错误提交

 $git log //查看提交历史
 $git bisect start//开始查找
 $ git bisect bad 7c0dcfa //标记坏节点
 $ git bisect good master 34567ab//标记好节点
 //git 自动帮我们找出中间节点
 $git bisect run make test //自动运行测试命令
 //git提示说找到错误节点

level-49
stage: 应用部分分支上的修改
场景: 某个文件在当前分支和另一个分支上都被修改了,使其应用当前分支的修改

 $git status //查看提交库
 $git add -p //进入add 命令界面
 //选择e(dit) 修改文件 

level-50
reflog: 查看操作记录
场景: 某个提交找不到了或被错误删除了

 $git reflog

level-51
revert: 撤销提交
场景: 某个提交出错,但不能修改提交记录 (不能用reset)

 $git revert HEAD~1 //不破坏原有commit记录,新增了一个commit

level-52
restore:恢复被`reset --HARD'的现场

 $git reflog //查看操作记录
 $git checkout e456754//签出到未破坏的现场

level-53
conflict:解决合并冲突

 $git merge mybranch
 $vim poem.txt
 $git commit -a -m'merge'

level-54
submodule:添加git仓库的子模块
场景:需要对依赖库进行修改和版本控制,且易于统一控制

 $git submodule add https://github.com/include_me

额外情况: 下载别人包括submodule的库

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

推荐阅读更多精彩内容