img

這是俺整理公司新訓內容的第一篇文章,目標是整理 Git 相關的筆記

前言、推薦資源

說來慚愧,前陣子 PTT 和臉書社團都有討論到相關科系畢業卻不會 Git 會不會太誇張,我正是畢業之後才開始用 Git 的那類人囧,相信像我一樣的人並不少,因此這個系列就決定從「新訓時學到的 Git 的基本操作」開始記錄。

開始之前先感謝公司前輩和完善的新手教學,還有第一天就先學 Git 的優良傳統。另外,也感謝相當多優秀的 Git 學習資源,說明得也更為詳細深入,想好好了解 Git 的朋友也可以逛逛,這邊就先推薦一波:

接下來我們就從認識 Git 開始吧!


什麼是 Git?

你發生過以下狀況嗎?

  • 從沒做過版本控制,結果突然要改回前一版,不知所措
  • 使用資料夾/壓縮檔板控
    • 20201201.rar, 20201215_v2.rar, 20201215_首頁.rar……
    • 空間越吃越兇,東西越來越雜,事情越想越不對勁,但是不敢刪除
    • 其實不知道每一份實際上改了哪裡,要復原某一段的時候要找半天,不如直接重寫一段
  • 團隊合作/分組報告,各自負責一個區域,結果複製來複製去組不起來,不只需要看眼科,修 BUG 還比寫的時間還多
  • 看到一段程式碼
    • 完全不知道為什麼要這樣寫
    • 或是氣到要死,抓不到戰犯

那麼,你很有可能需要 Git!

Git 是一套分散式的版本控制,就像是打電動時的存檔。讓我們可以在面臨重要選擇的時候存檔、打王之前存檔、打贏的時候也存個檔。當然,像是那種有多劇情多結局的遊戲,也可以針對不同路線各自存檔。

同時它也支援雲端存檔,你可以在電腦上存個檔,然後有網路的時候就丟上去雲端備份一下。而這個雲端備份是共用的,所以你可以跟朋友一起玩同一款遊戲,各自攻略不同的 BOSS,再把存檔和朋友互相交流交流,合成一個有兩份戰利品的存檔。

這些功能在 Git 有著聽起來比較厲害的名字,例如認可(Commit)、分支(Branch)、分散式、合併(Merge)等等。我們後續再慢慢了解它們。

……

閱讀全文