2011-12-12 17 views
3

我同時爲不同的僱主工作。我必須在僱主的基礎上使用不同的憑證。我可以在每個存儲庫中輕鬆運行git config author.emailgit config author.name。但我想在全球範圍內做到這一點,因爲每個僱主都有很多存儲庫,新的存儲庫經常出現。基於某些子目錄選擇git存儲庫的作者憑證

我將所有存儲庫安排在兩個文件夾中。即~/projects/<employer_name1>/<project_name>~/projects/<employer_name2>/<project_name>

所以我想要做的是讓git根據當前倉庫(它是哪個僱主子目錄)的位置自動選擇正確的提交憑證。

我自己找到了答案。將此添加到.bashrc中:

function git() { 
    case $(readlink -f .)/ in 
    $(readlink -f /home/cryo/projects/fun-box)/*) GIT_AUTHOR_NAME=my_name [email protected] /usr/bin/git $*;; 
    *) /usr/bin/git $*;; 
    esac 
} 
+0

發現此腳本http://www.mikeivanov.com/different-emails--for-different-git-repositori 它選擇作者電子郵件。我會很高興,如果它也可以選擇作者姓名 – cryo28

+0

你看到我的回答? – manojlds

+0

是的。我知道這會起作用。謝謝。但這不是我正在尋找的,因爲我將不得不爲每個新項目運行帶有正確參數的腳本。我相信我會遲早忘記這麼做的。所以我對上面鏈接中提供的解決方案更感興趣。我很樂意將它修改爲不選擇電子郵件,而是選擇作者/電子郵件對。 – cryo28

回答

0

您可以在repo級別設置user.name和user.email,以及任何其他設置。只要你喜歡就編寫它。

+0

是的。我知道這一點。但這不是我正在尋找的。我爲每個僱主都有幾十個項目。這些項目非常小,每週都會創建新項目。所以我相信如果遵循這種方式,我會忘記設置特定的作者姓名和電子郵件一次。這就是爲什麼我寧願做一些.bashrc別名來自動爲我管理憑據。但仍然感謝你的時間。 – cryo28

+0

你有一套有限的電子郵件,或者當有新項目進來時你有可能獲得一個新的電子郵件嗎? –

+0

是的。我有一套有限的作者/電子郵件對。每一對爲我工作的特定僱主。 – cryo28

2

擁有創建回購的集中機制。就像你的路徑中的一些腳本等你可以這樣做:

repo create -e employer -n name 

或類似的東西。

回購命令(只是一個例子,與Android的無關)將在必要的位置爲您創建回購並讀取配置文件並根據僱主等設置該回購憑證等。

0

爲每位僱主添加頂級回購。使每個新項目成爲此回購的子模塊。這應該讓你從現在開始不用擔心每個項目的名稱和電子郵件設置。

相關問題