在設計另一個Git .dotfiles
管理系統時出現此問題。我想使用$HOME
作爲我的工作樹,並將其存儲在其他地方(不在.git
之下,因爲這會混淆其他存儲庫)。
在老機器與先前複製的和潛在的扭捏點文件,我現在想克隆我的新點文件存儲庫和(波手)獲得一個狀態,我可以看到的(預)現有的狀態,我$HOME/.*
dotfiles修改爲我新克隆的存儲庫的主服務器。這主要是背景,在Git我只是想謹慎檢查一個髒目錄而不覆蓋。
(在一般情況下,我可以只啓動一個新的目錄,然後在我的變化複製,但似乎很難做到,當工作樹是我$HOME
。)
我找到一個對命令這似乎讓我在正確的地方,但我 不知道是否有或者是陷阱,以這種方法還是比較簡單的方法可以做到 同樣的事情:
git read-tree -v HEAD # load HEAD into the index
git checkout-index -a # cautiously check out all files without overwriting
做這兩個命令得到相同的狀態爲複製我的家,做一個普通的結帳,然後複製我的文件,如tha t git diff
只會改變我在這臺機器上所做的更改,並且沒有文件被刪除?
這些應該應用的其他選項?
的背景是我的(阿爾法)啓動腳本:
git clone --bare -n git://github.com/$(git config github.user)/.dotfiles.git ~/.dotfiles/repo.git
git config -f .dotfiles/repo.git/config core.bare false
git config -f .dotfiles/repo.git/config core.logallrefupdates true
git config -f .dotfiles/repo.git/config core.worktree $HOME
export GIT_DIR=~/.dotfiles/repo.git ; export GIT_WORK_TREE=~
git read-tree -v HEAD
git checkout-index -a # all files without overwriting
ln -sf $HOME/.dotfiles/gitignore-dots $HOME/.dotfiles/repo.git/info/exclude
你能否澄清「不這樣做」?我的方法存在固有風險需要謹慎? rsync-repo有什麼優勢?$ HOME?謝謝 – bsb 2012-07-31 04:19:35
'$ HOME'是一個很常用的目錄,不應該是git工作目錄的網站;幾乎某些工作目錄會被污染 – 2012-07-31 04:43:49