我更改了配置文件中的一些设置,我不想将这些设置推送到远程存储库。
我希望它只在本地影响一个项目。
我发现有几种方法可以做到这一点:
- 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中,但不希望提交对其的更改。