2017-08-09 75 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

我想这是最简单的方法 –