~/.gitignore和“git更新索引--假定不变”之间有什么区别



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

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

我发现有几种方法可以做到这一点:

  • http://365git.tumblr.com/post/519016351/three-ways-of-excluding-files(1)

Per Computer: through settings in ~/.gitconfig

  • git更新索引——假设不变(2)

我正在使用SourceTree,只有当我使用选项(2)时,我才会看到文件从UI中消失。

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

这真的意味着在使用选项(1)后,当我在SourceTree中看到这些文件时,它们不会被忽略吗?

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

git update-index --assume-unchanged根本没有显示文件已更改。如果您对文件进行任何修改,git将不会显示它已在git status中进行了修改。您可以将其与用户的配置文件一起使用。当存储库被克隆时,他们需要拥有文件,但可能需要一些更改,以便他们可以使用代码(即更改本地机器的文件路径)。但你不希望他们在引入更改时意外地提交文件,给其他人带来麻烦。

对于配置文件的更改,您希望使用git update-index选项。您希望配置文件在repo中,但不希望提交对其的更改。

最新更新