繁体   English   中英

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

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

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

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

我找到了一个可行的解决方案:我提交并推送模板,每个人都克隆存储库。 然后每个人都必须执行以下操作:

  1. 创建一个.gitignore,包括所有库

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

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

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

这应该可行,但是对于更大的团队,必须以不同的方式进行,所以我想知道是否有更好的方法来解决此问题? 还需要有关使用git组工作的一般描述。

注意:提到的库文件代表我们项目中的各种文件,这些文件将保留在本地存储库中,而不是在远程存储库中(因此不会被推送/拉出)。 例如.classpath,.profile,/ bin,...(Eclipse Java项目):这些文件是每个用户在本地更改的,但是当然不应将其推后!

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

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

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

您的朋友以及克隆存储库的人将获得所有信息,以(让git)恢复所有内容。

查看Git Subtree手册页以获取更多信息。 同一页面还提供了意大利语以及完整的git手册!

对于诸如Eclipse项目文件之类的东西,您可以考虑看看

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

文档可以在这里找到。

或者,看到这个答案涉及占位符名称为您基地的替代解决方案lib/文件/目录,并让你的开发人员在本地重新命名他们的东西,已经被忽略.gitignore

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM