菜雞新訓記 (1): 使用 Git 來進行版本控制吧
這是俺整理公司新訓內容的第一篇文章,目標是整理 Git 相關的筆記。
- 前言、推薦資源
- 建立一個新的儲存庫(Git Init)
- 把檔案加到 Git 的追蹤目標(Git Add)
- 提交變更(Git Commit)
- 查詢 Commit 紀錄(Git Log)
- 查詢兩個 Commit 之間的差異(Git Diff)
- Git 的 HEAD 是什麼?
- Git Revert:讓我們往回走一步
- Git Reset:讓我們搭上時光機
- Git 的分支(Branch)是什麼?
- 什麼是 Git 的遠端儲存庫(Remote)?要怎麼把變更推送(Push)到遠端儲存庫?
- 要怎麼從 Git 的遠端儲存庫拿到變更?認識擷取(Fatch)、提取(Pull)
- 使用 Git Clone 直接把遠端儲存庫的 Repo 抓下來
- 認識 Git 的提取要求(pull request, PR)
- 小結
- 本系列文章
- 參考資料
前言、推薦資源
說來慚愧,前陣子 PTT 和臉書社團都有討論到相關科系畢業卻不會 Git 會不會太誇張,我正是畢業之後才開始用 Git 的那類人囧,相信像我一樣的人並不少,因此這個系列就決定從「新訓時學到的 Git 的基本操作」開始記錄。
開始之前先感謝公司前輩和完善的新手教學,還有第一天就先學 Git 的優良傳統。另外,也感謝相當多優秀的 Git 學習資源,說明得也更為詳細深入,想好好了解 Git 的朋友也可以逛逛,這邊就先推薦一波:
- 為你自己學 Git
- 對新手非常友善。網站點進去後往下拉,可以看到大部分章節都能免費看,佛!
- 最有價值的是裡面的各種狀況題。畢竟當你用 Git 不只需要基本操作的時候,呃,祝你好運
- 連猴子都能懂的 Git 入門指南
- 從入門到進階篇跟過一次的話,基本操作就沒有問題了
- 圖解讓人很好理解,而且在教學的實作部分會提供儲存庫讓你下載實作
- 黑暗執行緒的 Git 分類文章
- 同場加映:黑暗執行緒的 Git 指令筆記
- 黑大出品,品質保證
- Learn Git Branching
- 用遊戲通關的方式認識 Git,對於一些分支的概念會很有幫助
- 30 天精通 Git 版本控管
- Pro Git
接下來我們就從認識 Git 開始吧!
什麼是 Git?
你發生過以下狀況嗎?
- 從沒做過版本控制,結果突然要改回前一版,不知所措
- 使用資料夾/壓縮檔板控
- 20201201.rar, 20201215_v2.rar, 20201215_首頁.rar……
- 空間越吃越兇,東西越來越雜,事情越想越不對勁,但是不敢刪除
- 其實不知道每一份實際上改了哪裡,要復原某一段的時候要找半天,不如直接重寫一段
- 團隊合作/分組報告,各自負責一個區域,結果複製來複製去組不起來,不只需要看眼科,修 BUG 還比寫的時間還多
- 看到一段程式碼
- 完全不知道為什麼要這樣寫
- 或是氣到要死,抓不到戰犯
那麼,你很有可能需要 Git!
Git 是一套分散式的版本控制,就像是打電動時的存檔。讓我們可以在面臨重要選擇的時候存檔、打王之前存檔、打贏的時候也存個檔。當然,像是那種有多劇情多結局的遊戲,也可以針對不同路線各自存檔。
同時它也支援雲端存檔,你可以在電腦上存個檔,然後有網路的時候就丟上去雲端備份一下。而這個雲端備份是共用的,所以你可以跟朋友一起玩同一款遊戲,各自攻略不同的 BOSS,再把存檔和朋友互相交流交流,合成一個有兩份戰利品的存檔。
這些功能在 Git 有著聽起來比較厲害的名字,例如認可(Commit)、分支(Branch)、分散式、合併(Merge)等等。我們後續再慢慢了解它們。
……