〜/ .gitignore和`git update-index --assume-unchanged`之间有什么区别

时间:2014-10-29 15:02:46

标签: java git repository atlassian-sourcetree

我在配置文件中更改了一些我不想推送到远程存储库的设置。

我希望它只在本地影响一个项目。

我看到有几种方法可以这样做:

Per Computer: through settings in ~/.gitconfig

  • git update-index --assume-unchanged(2)

我使用SourceTree并且只有当我使用选项(2)时,我才会看到文件从用户界面消失。

(1)和(2)之间有什么区别?

在使用选项(1)后在SourceTree中看到文件时,是否真的意味着文件不会被忽略?

1 个答案:

答案 0 :(得分:1)

.gitignore文件可防止文件显示为要添加到存储库的文件。如果文件在添加到.gitignore文件时已存在于repo中,则对该文件的任何更改都将由git显示并可以提交。 .gitignore设置仅影响repos路径中的新文件。您可以使用它来保存由IDE创建的临时文件或编译文件,使您在执行git status时显示并混乱您修改的文件列表。

git update-index --assume-unchanged未显示文件已完全更改。如果您对文件进行任何修改,git将不会显示它已在git status中进行了修改。您可以将此配置文件用于用户。当克隆存储库时,他们需要拥有该文件,但可能需要进行一些更改,以便他们可以使用该代码(即更改其本地计算机的文件路径)。但是你不希望他们在进行更改时不小心提交文件并为其他人搞乱。

要更改配置文件,您需要使用git update-index选项。您需要repo中的配置文件,但您不想将更改提交给它。

相关问题