什麼是 Dotfiles ?
在使用 Mac 的時候在 Home Directory 會有許多以 ‘.’ 開頭的檔案。(大部分都是隱藏起來的)
舉例來說像是 .vimrc, .ideavimrc 等等。
他們就是某些軟體的某些設定檔,就以上面的例子來說,.vimrc 會管理你自己設定的一些 vim 的相關設定。
為什麼要管理 Dotfiles ?
有時候你會重設你的電腦,或是換到其他電腦做使用。
但人是習慣的動物,如果可以有相同的設定檔會讓自己的生活過得開心點。
所以我們可以透過 Git 將 dotfiles 上傳到 github 或是類似的管理網站。
以後只要想要類似的設定檔,只要 clone 下來就可以了。
使用方式
管理 Dotfiles 有許多種方式。
這裡記錄一下目前我被朋友推坑的使用的方式。
-
在 Home Directory 下建立一個 .dotfiles folder
-
在 .dotfiles 下 init git repo
-
在 .dotfiles 下建立 .gitignore then commit
-
在 .zshrc 下加入 alias dgit=‘git –git-dir ~/.dotfiles/.git –work-tree=$HOME’
-
回到 Home Directory
-
dgit add -f .profile then dgit commit -m “xxxxx”
-
加入其他你想要加入的 dotfiles
-
push to remote repo
當你需要這些設定檔的時候只要在 Home Directory clone repo
下指令
dgit reset --hard
// 如果沒有 dgit 的話可能要先重複步驟四。
// 特別注意,如果原本 Home Directory 裡有與 remote repo 相同的檔案會被覆蓋。
參考資料
Youtube - .dotfiles in 100 Second
Keep your home dir in Git with a detached working directory
概念解說
從上面的參考資料 .dotfiles in 100 Second 可以知道,最一開始是希望能夠透過把我們想管理的 dotfile
全部放在 .dotfiles 裡面並使用 git 去管理。
但這裡會有一個比較麻煩的地方就是如果你有許多的 dotfile 你可能會需要做很多次連結 ln -s ……
當然,你可以 google 一下會發現有許多厲害的 .dotfiles repo 裡面都建好 script 來幫你做這件事。
如果你不想努力了(誤),多學 script 。就可以參考另外一種方式。
一般來說我們使用 git 的時候會在當前的資料夾做版控。(就像上方 Youtube 參考連結的做法)
但我們現在的目的是希望在 ~/.dotfiles 裡面建立 git repo 但是是對 Home Directory 的內容去做版控。
使用 git –git-dir {path} –work-tree={path} 這個指令就可以達成這個目的。
然後我們透過 alias 的方式增加我們的效率。不用每次都打這麼長的指令。
結語
如果有任何錯誤或不了解的地方,再煩請留言指正囉。