上一篇介紹了學習 Git 的好工具,如果你沒有看過,請先閱讀:
闖過這 54 關,點亮你的 Git 技能樹
今天我將帶大家完成前十關。第一關在前文中已經完成,我們從第二關開始吧。
如對任何命令有疑問請看第一篇裏的推薦教程。
第二關
根據提示,我們要配置「用戶名」和「郵箱」,爲什麼呢?
你的代碼提交後,特別是提交到開源社區,被別人看到,人家覺得這個代碼寫的真牛,想給你一個工作機會,怎麼聯繫你?
通常,我們在 IDE 裏創建一個新文件,IDE 都會自動加上日期,作者,郵箱等信息。其實我認爲這都是過時的傳統了,現在我們喜歡儘量保持源代碼乾淨。
像創建日誌,作者,郵箱這些信息都應該交給版本控制系統來記錄。
當然如果你代碼寫的很爛的話就要小心了,別人 git
blame
一下就可以問候你的家人了。
第三關
第四關
第五關
第六關
第七關
這一關對於不瞭解 Vim 的同學可能有一點麻煩。這裏也是一個很貼近實際的場景,用 Vim 編輯文件的時候,會產生一個 .swp
文件,這個文件的作用是:在你不小心退出了
Vim 或 Vim 自己崩潰後,再次編輯這個文件,就會提示你存在一個 .swp
文件,詢問是否恢復。
它屬於臨時文件,顯然不應該被提交到 VCS 裏去。所以 Git 有一個機制讓我們可以忽略某些文件。
第八關
根據提示來看一下幫助
git
gitignore --help
,輸入 /negate
進行搜索,一下就定位到下面這一段:根據幫助我們知道了,可以用 !
來對模式取反。
所以我們編輯 .gitignore
,追加如下兩行:
*.a
!lib.a
第九關
git
status
是一個非常常用的命令,插一句題外話:我給它配一個別名 gst
,這樣敲起來就非常方便。
第十關
這兩關都是考察基本概念,一個文件的幾種狀態:
- untracked - 新增的文件,Git 根本不知道它的存在
- not staged - 被索引過又被修改了的文件
-
staged - 通過
git add
後被即將被提交的文件
這裏一看狀態就知道了,如果現在執行
git
commit
,只有最上面的兩個文件會被 commit。