這是一個系列文章,介紹了學習 Git 的好工具 - githug,若是你是第一次看到,請先閱讀:
闖過這 54 關,點亮你的 Git 技能樹
闖過這 54 關,點亮你的 Git 技能樹(一)node
今天我將帶你們完成第 11 - 20 關。如對任何命令有疑問請看第一篇裏的推薦教程。git
在 git 裏,建立一個新文件時,要用 git add
來告訴 git,一樣,刪除一個文件時候,也要告訴 git。編輯器
有時候執行 add 操做的時候不當心把多餘的文件 add 進去了,這時咱們須要把它從 staging area 移除出來,但不能刪除文件。
經過 git help rm
,搜索 cached
,能夠看到有這個參數,恰好能知足咱們的需求。ide
--cached Use this option to unstage and remove paths only from the index. Working tree files, whether modified or not, will be left alone.
這一關的場景也很是常見,回想一下之前咱們用 CVS 或 SVN 的時候。
你寫一個新需求寫的正 High,忽然你的主管找到你說有一個用戶打電話來遇到一個問題,很是緊急。
我之前的作法是:把當前改過的文件「複製」一份先放在其它地方,把代碼還原到沒修改的狀態,簽出對應 production 環境的代碼。
定位修復問題,提交代碼,確認問題修復後再合併回開發分支,並把以前備份的代碼複製進來進行合併。工具
stash 正是解決這個問題的,只須要 git stash
,它就把當前未提交的改動「複製」到另外一個地方暫存起來,待要恢復的時候執行 git stash pop
便可。學習
這一關有兩種解法,第一種是:this
mv oldfile.txt newfile.txt git rm oldfile.txt git add newfile.txt
顯然這樣作用戶體驗很糟,Linux 確定不會這麼設計軟件的。spa
第二種作法:git mv oldfile.txt newfile.txt
設計
這一關至關於上一關的加強版,能夠用通配符一塊兒批量移動文件。code
有時候咱們要看代碼的提交歷史,好比 Code Review 的時候。
不過 git 自帶的 git log
命令比較弱,建議使用 GUI 客戶端或 tig。
git push
命令默認是不會 push Tags 的,須要加參數。
有時候提交以後發現漏掉了某些文件,怎麼辦?
每每不少人就會選擇再單獨提交一次,這樣作實際上是不合理的,以前的 commit 就不完整了,有可能上了 CI 就會掛掉。
好的作法是 amend:
命令執行後會調用默認的編輯器編輯 commit message,它會自動帶出以前的 message,若是不須要修改,直接保存退出便可。
默認提交的時候記錄的是當前系統時間,但這一關要求覆蓋提交日期。
我想不到有什麼場景須要這麼作,邪惡一點,有可能你把週五的提交,日期寫成周末,這樣表示週末在加班。
純屬YY,千萬不要學,學了也不要告訴別人是我教你的。git help commit
,搜索 date
:
--date=<date> Override the author date used in the commit.
今天就到這裏了,若是想第一時間獲得更新,請關注 CodingStyle.cn!