Githug Solution
安装
百度有教程,重点是要用cmder,要下载ruby环境
Level 1
|
|
Level 2
|
|
Level 3
|
|
Level 4
|
|
Level 5
|
|
Level 6
|
|
Level 7
|
|
Level 8
|
|
Level 9
|
|
Level 10
|
|
Level 11
|
|
Level 12
|
|
Level 13
|
|
Level 14
|
|
Level 15
|
|
Level 16
|
|
Level 17
|
|
Level 18
|
|
Level 19
|
|
Level 20
|
|
Level 21
|
|
Level 22
|
|
这里隆重介绍HEAD , index, 和 working copy
- HEAD:就是指当前commit的位置(头指针)
- index:指包含下一个commit的文件集(也就是即将commit的位置)
- working copy:当前工作区
所以说为什么 –hard可能导致代码丢失(因为影响了working copy)
Level 23
|
|
Level 24
|
|
我们熟悉的 git remote add url
连接远程仓库w
Level 25
“The remote repositories have a url associated to them. Please enter the url of remote_location.”
列出了这几个东西:
我懵了,两个url哪个才是呢?
逐一尝试发现第二个才是正确答案,不解。
Level 26
|
|
Level 27
|
|
Level 28
|
|
关于merge 和 rebase, 这里讲的蛮清楚了
merge&rebase
简而言之,merge就是当你跟别人conflict的时候会生成一个新的“合并提交”,
而rebase不会,它会首先取消你的提交,把你的提交信息保存在.git/rebase中作为补丁(patch),
使你的个人分支(当前所在分支)变成新的origin分支,然后一个个添加补丁,这样你的commit树就会像一根线一样看起来整洁(因为补丁都依次排列在原分支后)
p.s.使用rebase注意一条铁律:
一旦分支中的提交对象发布到公共仓库,就千万不要对该分支进行合并操作!
Level 29
这题试了无数次qwq
给我这么一段东西:
百度之后知道是
“-” 开头表示源文件
“+”开头表示目标文件
“@@”那一行表示差异小结的开始(注意!这一行下面一行才是差异的第一行!)
就是图中的 “erb : success”为差异小结第一行,从这里开始数直到“ - ”,“ + ”符号出现,这里是第四行,然后加上差异出现位置23行,然后就理所当然得到27 ,(咦不对喔?立马用左右互搏之术得到正确答案26哈哈哈~)其实是我懵逼了,erb是第一行也是23行,所以其实就是26行(第四行就是增加3行)。
Level 30
这关我并不知道怎么做,当成ctf了哈哈哈
commit信息里Bruce Banner说是他改的,但我输入不是,但不可能是他之后,只能是之前,往前推一个Spider man,答案正确。(完全就是蒙的)
想找哪一部分是谁写的简直不费吹灰之力~
Level 31
|
|
Level 32
|
|
Level 33
|
|
Level 34
这题想不到解决办法,只好删掉branch再切tag
网上正确做法是:
Level 35
|
|
Level 36
|
|
Level 37
|
|
Level 38
|
|
Level 39
|
|
Level 40
又是rebase,跟28关的提交略有不同,28关的rebase只有一个参数
Level 41
这题用到了rebase 的 –onto 属性.
知乎:git rebase 的 –onto选项的用法疑问?
|
|
|
|
1.checkout到C
2.把B到C之间的commit写成一个文件存着
3.强制git reset –hard 到A(C的HEAD重置为A)
4.把 2 中的commit一个个添加到A,操作结束之后当前分支为C.
Level 42
repack
Level 43
cherry-pick
Level 44
|
|
Level 45
这题好玩
Level 46
git rebase –abort 撤回!
Level 47
|
|
将特定分支所有commit合并
Level 48
reorder
直接爆力修改顺序
Level 49
bisect
厉害
Level 50
|
|
Level 51
|
|
Level 52
revert
Level 53
|
|
Level 54
|
|
Level 55
submodule
Level 56
contribute
可以为官方仓库做贡献,比如出题什么的..
到这里已经结束了。
我学到最重要的东西不只是github的许多之前未接触到的知识,而是,希望自己在将来的学习中能充当自己的debuger,常常告诉自己,一句游戏中出现过无数次的话:
Sorry, this solution is not quite right!
finished.
-完成日期: 2018.02.01-