.gitignore /lib 来自项目,但将其保留在所有本地存储库中(所有成员的)

.gitignore /lib from project but keep it on all local repositories (of all members)

是否有比我尝试过的更简单的解决方案?

我想和朋友一起开始一个 git 项目,我已经创建了一个包含所有相关库的模板(因此他们不必手动添加)。我现在如何确保他们获得库并且我们都可以在不推送它们的情况下修改这些文件,即使我们每个人都更改了它们?

我找到了一个应该有效的解决方案: 我提交并推送模板,每个人都克隆回购协议。 那么大家要做的就是:

  1. 创建一个 .git忽略包括所有库

  2. 从存储库中删除这些文件 (git rm --cached <all the lib files>)

  3. 将更改添加到临时区域 (git add .)

  4. 拉远程(使用单个模板提交)并再次推送它

这应该可行,但对于更大的群体,它必须以不同的方式进行,所以我想知道是否有更好的方法来解决这个问题? 关于与 git 一起工作的一般描述也是需要的。

注意:提到的库文件代表我们项目中的各种文件,它们将保存在本地存储库中,而不是远程存储库中(因此它们不是 pushed/pulled)。例如.classpath、.profile、/bin、...(eclipse java 项目):这些文件由每个用户在本地更改,但当然不应该被推回!

Eclipse工程文件之类的,可以考虑看看

git update-index --assume-unchanged [file]

可以找到文档 here

或者,请参阅 this 的替代解决方案答案,其中涉及基础 lib/ files/directories 的占位符名称,并让您的开发人员在本地将它们重命名为 .gitignore.

通常共享 IDE 配置不是一个好主意,因为路径(and/or 路径分隔符)通常适用于一个开发人员,但不适用于其他开发人员。

然后我会排除那些配置。 您是否考虑过使用 maven 来管理这些库,而不是复制大量属于库的文件?

说,如果你想实现你的要求,你应该看看 Subtree 来管理那些配置和库。 简而言之,您将拥有项目的存储库,以及您不想要的文件夹的子树(例如 lib/、.classpath、.profile、/bin - 你真的想要版本控制 bin 吗?)。

您的朋友和曾经克隆存储库的人将获得所有信息以(让git)恢复一切。

查看 Git Subtree manual page for further information. The same page is available in Italian 以及完整的 git 手册!