01/19 本篇章節
第五篇 · 19 章
開始使用 Git
- 01 新增、初始 Repository
- 02 把檔案交給 Git 控管
- 03 工作區、暫存區與儲存庫
- 04 檢視紀錄
- 05 【狀況題】如何在 Git 裡刪除檔案或變更檔名?
- 06 【狀況題】修改 Commit 紀錄
- 07 【狀況題】追加檔案到最近一次的 Commit
- 08 【狀況題】新增目錄?
- 09 【狀況題】有些檔案我不想放在 Git 裡面...
- 10 【狀況題】檢視特定檔案的 Commit 紀錄
- 11 【狀況題】等等,這行程式誰寫的?
- 12 【狀況題】啊!不小心把檔案或目錄刪掉了…
- 13 【狀況題】剛才的 Commit 後悔了,想要拆掉重做…
- 14 【狀況題】不小心使用 hard 模式 Reset 了某個 Commit,救得回來嗎?
- 15 【冷知識】HEAD 是什麼東西?
- 16 【狀況題】可以只 Commit 一個檔案的部份的內容嗎?
- 17 【冷知識】那個長得很像亂碼 SHA-1 是怎麼算出來的?
- 18 【超冷知識】在 .git 目錄裡有什麼東西?Part 1 僅收錄於電子書
- 19 【超冷知識】在 .git 目錄裡有什麼東西?Part 2 僅收錄於電子書
第五篇 · 開始使用 Git
新增、初始 Repository
終於,我們要開始使用 Git 了,喔耶!
如果是全新的開始...
我假設這是你第一次使用 Git,所以就先從建立一個全新的目錄開始來練練手感吧。請打開你的終端機視窗,並試著操作以下指令。在指令後面的 # 符號是說明,不需要跟著輸入:
$ cd /tmp # 切換至 /tmp 目錄
$ mkdir git-practice # 建立 git-practice 目錄
$ cd git-practice # 切換至 git-practice 目錄
$ git init # 初始化這個目錄,讓 Git 對這個目錄開始進行版控
Initialized empty Git repository in /private/tmp/git-practice/.git/
在上面這個範例中主要做了幾件事:
- 使用
mkdir指令建立了git-practice目錄。 - 使用
cd指令切換到剛剛建立的git-practice目錄。 - 使用
git init指令初始化這個目錄,主要目的是要讓 Git 開始對這個目錄進行版本控制。
其中,第 3 步這個指令會在這個目錄裡建立一個 .git 目錄,整個 Git 的精華就都是在這個目錄裡了。如果各位有興趣可以先看一下這個目錄裡面的內容,不過現在並不打算介紹裡面的細節,請各位先體會一下使用 Git 的手感,待後面的章節會再慢慢介紹這個目錄裡到底在賣什麼藥。
小數點開頭的目錄或檔案名稱(例如
.git),在一些作業系統中預設是隱藏的,可能會需要開啟檢視隱藏檔之類的設定才看得到。
如果你是使用 SourceTree,也可以這樣做:
選擇 New -> Create Local Repository:

填寫路徑,並選擇使用 Git:

然後就會在 /tmp 目錄下建立一個 git-practice 目錄,最後的畫面會長得像這樣:

這樣一來就可以做出跟指令差不多的效果了。
如果本來就有的目錄...
如果想針對本來就存在的目錄進行版控,其實只要到那個目錄下執行 git init 指令即可。如果是使用 SourceTree,則是只要把那個目錄拖拉到 SourceTree 介面即可:

如果這個目錄不想再被 Git 控制?
其實 Git 的版控很單純,全部就是只靠那個 .git 目錄在做事而已,所以如果這個目錄不想被版控,或是只想給客戶不含版控紀錄的內容的話,只要把那個 .git 目錄移除,Git 就對這個目錄失去控制權了。
也就是說,整個專案目錄裡,什麼檔案或目錄刪了都救得回來,但
.git目錄只要刪了就沒辦法了。
為什麼一直用 /tmp 目錄,其它目錄可以嗎?
在本書的範例中,我常會在 /tmp 目錄下進行練習,那是因為在 MacOS 系列的作業系統,/tmp 目錄裡的東西在下次電腦重新開機(或當機)的時候就全部被清空,所以不需要再手動整理。這算是我在練習的時候的個人喜好,你要使用其它目錄也是可以的,但如果是重要的檔案,千萬不要跟我一樣放在這個地方喔。