Settings

將 ~ 置於原始碼控制之下的提示

  • January 2, 2018

我想將我的主目錄 (~) 置於原始碼控制之下(在本例中為 git),因為那裡有許多設置文件(.gitconfig、.gitignore、.emacs 等)我想跨機器攜帶,並將它們放在 Git 中會很適合檢索它們。

我的主機是我的 MacBook,而 OS X 的設置方式,有很多我想忽略的文件夾(文件、下載、.ssh)。還有一些文件夾已經在使用 Git (.emacs.d)。

我的想法是將所有這些目錄添加到我的 .gitignore 文件中,但這似乎有點令人厭煩,並且可能會導致一些無法預料的後果。我的下一個想法是定期將要儲存的文件複製到家中的某個文件夾中,然後送出該文件夾。這樣做的問題是我必須記住在送出之前移動它們。

有沒有一種干淨的方法可以做到這一點?

$HOME在 git 下。我的 .gitignore 文件的第一行是

/*

其餘的是使用!修飾符不能忽略的模式。這第一行意味著預設是忽略我的主目錄中的所有文件。我想要版本控制的那些文件是.gitignore這樣的:

!/.gitignore
!/.profile
[...]

我有一個更棘手的模式是:

!/.ssh
/.ssh/*
!/.ssh/config

也就是說,我只想版本化.ssh/config——我不希望 .ssh 中的密鑰和其他文件進入 git。以上是我實現這一目標的方法。

編輯:在所有路徑的開頭添加了斜杠。這使得忽略模式從儲存庫頂部($HOME)而不是任何地方匹配。例如,如果!lib/是一個模式(不要忽略 lib 目錄中的所有內容)並且您添加了一個文件.gitignore,那麼之前的模式 ( !.gitignore) 是匹配的。使用前導斜杠 ( !/.gitignore),它將僅.gitignore在我的主目錄中匹配,而不在任何子目錄中匹配。

我還沒有看到這與我的忽略列表產生實際差異的情況,但在我看來,它在技術上更準確。

引用自:https://unix.stackexchange.com/questions/1875