3

我開始使用git進行軟件開發。保持分支的設置

我在github上有一個項目。該項目還涉及存儲在專用設置文件中的一些用戶設置。

在GitHub上的設置應該是空的(像這樣)

### Settings: 

## Your name 
$name = ""; 
## Your email adress 
$email = ""; 
## and so on 

不過,我也有我的電腦(或服務器)上運行的項目。我個人版本的項目應該填寫所有設置。

我想有兩個分支。個人分支應該包含我所有的設置。主分支應該是我開發軟件和上傳到github的那個分支。

我想不時將主分支合併到個人分支中,以使我的系統保持最新狀態。但是,每當我嘗試合併分支時,我的個人設置都會丟失。

有沒有辦法做到這一點,或者我只是做錯了什麼?

+0

難道你是(ab)使用你的build目錄也作爲生產/測試目錄嗎?這些應該是不同的東西。 – pmr

+0

他們爲什麼要不一樣?最終,這意味着我將不得不在完成測試後再做所有更改。認爲git的許多優點之一是,這是沒有必要的。 – speendo

+1

從生產中分割測試很常見,即使構建類型也必須不同,並且安裝的程序應該在某個標準位置結束並從某些標準配置讀取配置。 – pmr

回答

2

在你的個人分支,你可以繼續:

  • GitHub的配置文件不變(沒有值),但使用不同的名稱(config.template例如)
  • 「價值文件」與您個人價值
  • 一個「污點」腳本能夠使用模板之一,你的個人價值產生實際的配置文件

該腳本觸發任何git checkout作爲content filter driver

enter image description here

這樣的話,你可以合併master到你的個人分支,只要你想盡可能多的時間,你的配置值將不會被修改。

1

您可以提交空設置文件,然後提交一個指向原始文件的.gitignore文件,這樣用戶可以下載文件,但git會忽略用戶所做的更改。

+0

這適用於推動而不是拉動,對吧? – speendo

+0

我這麼認爲,你能試試嗎? –

2

您可以創建一個設置文件,如setting-sample,並修改.gitignore以忽略實際設置文件(即setting)。因此,空設置文件將保存在遠程回購站中,並且您的個人設置文件將保存在本地回購站中。