2017-08-09 150 views
0

我在Git中有一個項目,我將在多臺PC上安裝它。有一個名爲config.ts配置文件,並具有以下結構:如何忽略Git中已修改的配置文件

export var config = { 
    apiUrl: "", 
    local: "", 
    scannerUrl: "", 
    reportPrinterUrl: "" 
} 

我需要的是創建該文件,如果當我執行的git拉出身主命令不存在,但停止跟蹤它時,它的修改,以便它可以在任何電腦上進行修改,並且配置在下一次拉動時不會被壓入或擦除。

我讀過一些問題和文章,但我見過很多選項,如git存儲,--asume-不變,仍然不太確定如何去做。

(對不起,我英文不好)

編輯

我發現剛纔忘了文件的最簡單的方法就是在每一臺PC才能執行此命令

git update-index --assume-unchanged <file> 

Credits from here

編輯2

像torek在評論中說的,目前最好的解決方案是創建「模板」文件並將其命名爲「config.blank.ts」(或類似的東西),然後添加到.gitignore中的「config.ts 「文件。因此,該過程應克隆回購,然後將該文件複製到config.ts,然後進行修改。

+0

將此文件添加到您的.gitignore – marcusshep

+0

,但該文件僅在文件從未提交時起作用,並且如果是這種情況,那麼我將無法在第一次爲結構獲取「乾淨」版本 –

+3

In一般來說,正確的方法是完全省略實際配置文件,並提交一個* sample *配置文件,以便軟件用戶在安裝過程中根據本地要求進行復制和修改。您甚至可以讓程序自動執行此安裝,並且/或者先讀取樣本/默認文件,然後從(從未提交,in -'.gitignore')* local *配置中讀取任何*覆蓋*。 – torek

回答

0

只需將更改推送到您的配置文件。

當您將此項目克隆到不同的本地計算機上時,您希望對配置文件進行必要的更改。爲了防止這些更改被推回到遠程存儲庫,請不要將這些更改添加或提交到您的git歷史記錄中。

假設你有文件x,y和z。您對這三個文件進行更改,但不希望推送文件y中所做的更改。

git add /path/to/x 
git add /path/to/z 
git commit 
# etc 

添加到您的.gitignore

如果說你的配置文件已經在以前提交了加入,你就必須運行以下。

echo "config.ts" > .gitignore 
git rm --cached config.ts 

如果然後運行git status,你會發現你的配置文件已被刪除。這隻會在你的git-index上被刪除,而不會在你的機器上被刪除。

+0

我想這是最簡單的方法 –