git - 忽略来自 Git 存储库及其克隆的版本控制文件

标签 git repository clone gitignore ignore

出于某种原因,我希望在我的存储库中有一个空文件。该文件需要存在,但构建过程更改了它,我不希望提交这些更改。我需要克隆我的存储库的用户也忽略对此文件的更改。

git update-index --assume-unchanged 看起来不错,但它只能在本地工作。

你知道我怎么解决这个问题吗?

最佳答案

清洁过滤器方法 mentioned通过 jthill是正确的做法。 +1

git clean filter

每次将文件“添加”到索引时,它都会强制恢复文件(这意味着它实际上从未被添加,因为它没有更改)。

问题:如何强制用户定义?

解决方案:让他们克隆一个模板存储库,其中已经包含:

  • 那个空文件,
  • .gitattributes 文件,其中声明了干净的过滤器

如果您将主要集中式存储库设置为拒绝不是快进更新的引用更新(git config receive.denyNonFastForwards true),您的用户将别无选择,只能推送来自与您的模板 repo 具有相同共同历史的 repo 。
这意味着他们将拥有这些设置。

当然,他们可以在新提交中删除上述设置,但那是 jthill 的回答中的 pre-receive Hook 启动的时候。
如果他们不需要了解这些文件,他们很可能不会弄乱已经为他们定义的内容。

关于git - 忽略来自 Git 存储库及其克隆的版本控制文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19385121/

相关文章:

c# - 通用存储库问题

java - 为什么数组允许使用克隆方法?

ruby-on-rails - bundle install 导致 git clone 错误。不确定此响应的含义

java - Cloneable 抛出 CloneNotSupportedException

linux - 如何在我的 bash PROMPT 中为当前的 git 分支添加颜色?

git - Azure devops 存储库和 TFVC 之间有什么关系?在 GIT 和 TFVC 之间进行选择的选项在哪里?

repository - 设置好 svnserve 服务器后,客户端将使用什么 URL 来访问服务器?

r - R更新: unable to access index for repository: internet routines cannot be loaded后无法安装软件包

Git - 如何恢复原始远程删除

ios - 忽略复制包资源 Xcode 8 中丢失的文件