2011-12-14 33 views
14

我想存儲所有我在GitHub上點文件,其中的.gitconfig以隱藏的.gitconfig GitHub的令牌。這需要我躲在GitHub的令牌的.gitconfig

要做到這一點我有「的.gitconfig隱藏令牌」文件,該文件是我打算編輯和下混帳把那個隱藏標記文件:

... 
[github] 
user = giuliop 
token = --hidden-- 
... 

而且一個shell腳本,我需要推出如果我修改「的.gitconfig隱藏令牌」文件創建「的.gitconfig」文件:

cp .gitconfig .gitconfig.backup 
sed 's/--hidden--/123456789/' .gitconfig-hidden-token > .gitconfig 

的缺點是手動啓動腳本,每次我modidy文件的需要。有沒有更好的,完全自動化的方式來做到這一點?

回答

10

將您的.gitconfig添加到git add -N

然後git add -p它,編輯大塊,用什麼代替令牌,並推動這一點。不需要這種方式的額外文件。

附錄:關於你的文件的補充修改,再次使用git add -p,並編輯大塊,使您的初始操作不會被覆蓋。

+2

如果隨後編輯文件並且`git add`忘記了`-p`會發生什麼?我想這個令牌將被髮布,然後 – gws 2011-12-14 14:40:13

+0

@gws:確實,但是你可以(也可能)在提交之前使用`git diff --cached`,如果有錯誤,只需`git reset`這個文件。 – fge 2011-12-14 14:46:44

1

我做了一個腳本來更新我的點文件回購,這也重新編輯敏感信息,如我的GitHub的令牌。我認爲github令牌不再被GitHub使用,但是如果我錯了,請糾正我。

您可以查看我的腳本here

34

我只是解決了這個問題了自己。解決這個問題的「正確」方法是將你的gitconfig分成兩個文件,一個是具有alias/config/etc的公共文件,另一個是保存用戶名和密碼的私有文件。是這樣的...


https://github.com/ddopson/dotfiles ...

的.gitconfig:
[include] 
    # For username/creds/etc 
    path = ~/.gitconfig.local 

[alias] 
    ... 
.gitconfig.local:
[user] 
    user = ddopson 
    name = Dave Dopson 
    email = [email protected] 
    token = a123uber456secret789ceprivate000key78 

[credential] 
    helper = osxkeychain 
的.gitignore:
/.gitconfig.local