轉載 https://segmentfault.com/a/1190000004222489?_ea=535336
開篇
如今,Git 大行其道崖技,頗有一統(tǒng)天下之勢。如果你的技能樹上 Git 和 Github 的圖標還沒有點亮的話钟哥,你都不好意思說你是程序員迎献。別說互聯(lián)網(wǎng)企業(yè),我接觸到的許多傳統(tǒng)企業(yè)都在從 SVN腻贰,Clear Case 等遷移到 Git 上吁恍,甚至大廠還會有一個團隊去定制適合自己企業(yè)的 Git 服務器。
很多人簡歷上寫的「精通 Git 與 Github」播演,但如果你問他熟悉到什么程度的話冀瓦,回答通常是「就是會用常用的add
,commit
宾巍,push
操作」咕幻。
但工作中我們會遇到一些更加復雜的場景:
- 忽略某些文件* 創(chuàng)建,刪除分支* 找到最后修改某行代碼的人* commit 后發(fā)現(xiàn)里邊包含一個不應該提交的文件* commit 后發(fā)現(xiàn)少提交了一些文件* 一個文件中的多次有改動顶霞,怎么做到只提交其中的一部分肄程?* 怎樣整理提交記錄使其更加整潔?* 快速定位是哪一次提交引入了 bug* ...
作為一線程序員选浑,我們要如何快速學習 Git 以發(fā)揮其最大威力呢蓝厌?
今天我就要向大家介紹一個工具,準確說應該是「游戲」古徒,名字叫「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
歉摧,會提示游戲目錄不存在艇肴,是否要創(chuàng)建一個,輸入y
進入游戲目錄叁温,準備開始游戲再悼。
基本命令
在開始前我們還需要了解游戲的一些基本操作:
play - 默認命令,檢查是否過關
hint - 顯示過關提示
reset - 重啟本關膝但,或者重啟到指定的某關
levels - 顯示關卡列表
來試一下冲九,githug reset
:
示例
我以第一關為例子給大家演示一下玩法。
第一關的名稱是:init
跟束,提示是:「一個新目錄 git_hug 被創(chuàng)建了娘侍,請把它初始化為一個空倉庫」。假設現(xiàn)在我不知道該怎么過關泳炉,我可以查看過關提示:
命令來查看 git
命令列表」。
就可以初始化一個空倉庫花鹅,接著輸入 githug
進行過關檢測:
太棒了!順利進入第二關枫浙!
怎么樣刨肃?明白了嗎?后面的 54 關就靠你自己了哦箩帚!
友情提示
在闖關過程中真友,盡量使用 githug hint
,git help subcommand
獲取幫助紧帕,也可以根據(jù)下面的兩個教程來系統(tǒng)學習盔然。猴子都能懂的 git 入門廖雪峰的 git 教程
為保大家都能順利通關,學到所有的知識點是嗜,接下來我會寫過關攻略愈案,詳細介紹每一關的玩法。并且我不會直接給答案鹅搪,而是演示整個過關的過程站绪。
祝你好運!我們明天見丽柿。