# 前言
這篇來說明要使用 Git 前「一定」要做的事情:設定使用者名稱、信箱。
以及可以選擇性操作的:設定 Git 預設文字編輯器。
# 設定 Git 的使用者名稱與信箱
# 用指令更改:
我們開啟終端機,並且透過下面兩個指令來設定 Git 使用者資訊。
(建議兩個指令「分開複製」到終端機執行)
git config --global user.name "這裡改你的名字" | |
git config --global user.email "這裡改你的信箱" |
實際輸入的內容看起來會像這樣:
git config --global user.name "imall" | |
git config --global user.email "[email protected]" |
如果想輸入的資訊 「沒有空格 (空白鍵)」,也可以不寫雙引號 ( ""
):
git config --global user.name imall | |
git config --global user.email [email protected] |
要確認有沒有設定成功,可以直接輸入下列指令:
git config --global user.name | |
git config --global user.email |
如果有成功,終端機就會顯示設定好的資料:
$ git config --global user.name | |
imall | |
$ git config --global user.email | |
[email protected] |
# 用 Fork 更改
- 請先選到 file > perference
- 找到 Git 的分頁,並且輸入您的想設定的名稱與信箱
- 關閉視窗就設定完成了。
# 更改 Git 預設的文字編輯器
要更改 Git 預設文字編輯器,可以使用下列的指令:
git config --global core.editor "編輯器執行檔位置" |
以設定為 VSCode
為例,輸入的指令會是這樣:
git config --global core.editor "code --wait" |
由於編輯器的設定可能會因為作業系統的不同,而須輸入不同的資訊。
讀者們可以到 GitHub 官方文件說明 尋找適合自己的資訊操作。
補充:曾經有使用 Mac 的朋友將預設編輯器設定成 VSCode 後,在執行會用到文字編輯器的 Git 指令時,出現
zsh:command not found: code
的錯誤訊息,這是因為 mac 的終端機zsh
還沒將VSCode
加入環境變數的關係。若有遇到一樣情況的讀者,可以參考 Visual Studio Code 官方文件說明 來處理。
# 常見問題
# 1. 為什麼使用 Git 還要設定使用者資訊與信箱?
為了讓 Git 能紀錄「發佈版本的人」。
一個人版控可能比較無感,不過如果是團隊協作版控,這個機制可以在「發現某個版本有問題」時,比較容易去追蹤是誰發佈的版本。
舉例來說,今天 菜月昴
、 愛蜜莉雅
、 雷姆
、 拉姆
,在合作開發同一個專案,每個人被分配到不同的內容。
雷姆
、 拉姆
、 愛蜜莉雅
完成自己的資料後, 羅茲瓦爾
(主管) 看了覺得做得太完美了,就把她們開發的內容合併到 dev 裡面準備讓測試團隊測試。
羅茲瓦爾
繼續 code review 的過程,看到 「 80153555
」編號的 commit,內容一蹋糊塗!
因為每個人使用 Git 都必須設定使用者資訊, 羅茲瓦爾
從 Git 線圖的內容就能找到是 菜月昴
在雷,於是把他抓出來教訓一頓,要他重改!
# 2. 在 Git 設定的信箱需要跟 GitHub 帳號一樣嗎?
可以不用。
初始設定的使用者、信箱的設定只是為了把發佈者資訊紀錄在版本內,與 GitHub 、GitLab 平台帳密之間沒有任何關係。
# 3. 使用者名稱跟信箱設定完,在 Git 會被綁定嗎?
不會。
這兩個資訊在設定完成後,依然可以修改,而且沒有任何修改限制。
如果會綁定還不能改,我上面那張圖的假資料根本做不出來 XD
# 4. 我打完指令後,什麼訊息都沒跑出來,所以是發生什麼事情了?
.gitconfig
被更動了。
上文提到的兩個指令是在設定 Git 的 .gitconfig
檔案
Mac 可以在這個路徑找到: ~/.gitconfig
Windows 則是在這個路徑: C:\Users\你的使用者名字\.gitconfig
如果讀者已經有成功設定使用者資料,用文字編輯器打開這個檔案 (記事本、notepad++、VSCode 都可以) ,應該可以在檔案內容看到框起來的文字。
我們在下指令的時候看到的 user.XXXX
以及 core.XXX
,其實就是對應 .gitconfig
裡面的 [user]
與 [core]
區域內的資訊 。
了解其背後的原理之後,讀者應該已經猜到,如果直接設定 .gitconfig
,也可以完成下指令做的事情!
# 5. 指令有 global 參數,難道也有 local 參數嗎?
答案是「有」。
接下來會提到尚未介紹的
.git
資料夾,觀念會在「建立儲存庫」的章節介紹,這裡先帶讀者理解 Git 的「區域」與「全域」設定觀念。
上面的問題帶大家認識 git config
是操作設定檔的指令。
如果帶上 --global
參數,會是設定 「全域」 設定檔,會去更動 .gitconfig
檔案;
如果帶上 --local
參數,則是設定 「區域」 設定檔,會去更動不同專案中 .git 隱藏夾
裡面的 config
檔案。
.git
裡面的 config
跟 .gitconfig
用途一樣,都是處理 Git 的設定資訊,兩者只有「區域」跟「全域」的差異: .gitconfig
是整台電腦都會使用的設定,而 config
是個別工作目錄的專屬設定。
有了這個觀念後,就可以依據需求來決定 git config
要添加什麼參數了。
git config --global (某個設定) | |
git config --local (某個設定) |
# 6. 能不能在不同專案使用不同使用者名稱跟信箱?
可以。
我們已經知道 git config --global
可以拿來設定全域的設定。
如果希望在不同專案設定不同的使用者,例如 A 專案叫 「冰結魔女愛蜜莉雅」 、B 專案叫 「擅長捉弄人的高木同學」 之類的,可以透過 --local
參數定義不同專案的資訊。
以下帶大家了解指令與 Fork 的設定方式:
# 用指令設定 local 使用者名稱與信箱
git config --local user.name "你的名字" | |
git config --local user.email "你的信箱" |
跟一開始介紹的指令,只差在 --local
參數,其他設置都一樣。
# 用 fork 設定 local 使用者名稱與信箱
-
點擊左上角 Repository > Settings for This Repository…
-
把 Use global git credentials 的勾勾拿掉
-
輸入專案的使用者資訊
-
關閉視窗就設定完成囉!
從 Fork 預設的畫面可以注意到,如果我們沒有特別設定專案的使用者,則專案就會直接抓全域使用者的資料。
# 7. 我用 --local
參數設定了使用者,想刪掉怎麼辦…
我知道新手毛很多
開玩笑的,拜託先別走…
這問題算是我還是新手時期最畏懼的事情,常常擔心跟著步驟走錯一步,電腦就會被我搞壞。
這題有兩種做法可以操作:
# 編輯 config
檔案將 local 使用者資料刪除:
- 打開專案中的
.git
資料夾,開啟config
檔案 - 檔案應該會有
[user]
相關的文字
- 直接刪除這段然後「存檔」
- 完成~
# 使用 Fork 刪除 local 使用者資料
- 點擊左上角 Repository > Settings for This Repository… (參考第 6 題的說明)
- 把 Use global git credentials 的勾選框打勾
- 完成~