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

时间:2015-02-18 16:28:31

标签: eclipse git github

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

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

我找到了一个应该有效的解决方案: 我提交并推送模板,每个人都克隆了回购。 然后每个人都必须做到以下几点:

  1. 创建包含所有库的.gitignore

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

  3. 将更改添加到暂存区域(git add .

  4. 拉出遥控器(使用单个模板提交)并再次按下

  5. 这应该有效,但是对于更多的群体,它必须以不同的方式完成,所以我想知道是否有更好的方法来解决这个问题? 关于使用git进行分组工作的一般描述也是可取的。

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

2 个答案:

答案 0 :(得分:2)

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

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

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

你的朋友和谁将克隆存储库将获得所有信息(让git)恢复一切。

有关详细信息,请查看Git Subtree manual page。同一页面可用[{3}},以及完整的git手册!

答案 1 :(得分:0)

对于像Eclipse项目文件这样的东西,你可以考虑看看

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

可以找到文档here

或者,请参阅this答案,了解涉及基本lib/文件/目录的占位符名称的替代解决方案,并让开发人员将其本地重命名为.gitignore已忽略的内容。