[英]Git ignore files per branch or remote repository
Git,Github.com
我有一个包含文件的项目:A,B,C,D,E。
然后我拉团队1的工作,使A,C,D与我的工作合并,然后拉团队2,并让B,D,E与我的工作合并。
如果需要,我可以为每个团队创建一个仓库。
我已经阅读了所有文章,并尝试了他们提供的所有内容。
我不想相信没有简单而优雅的解决方案,只是忽略每个推送或分支或远程回购中的某些文件或其他...
我将创建三个项目:
如果我想将A与C或B与D分开的更精细的访问控制,我将进一步拆分项目。
我认为我不会尝试使用忽略文件进行访问控制。
Git没有访问控制,因此:“ git ”,“ 秘密文件 ”和“ 易于维护 ”不能很好地混合使用。 查看服务器上的 gitolite和Git-如果要添加访问控制层,则为gitolite 。
您将需要进行实验,但是您可能可以按照从一个空的仓库开始,到每个团队都有一个分支的方式进行工作。 但是请注意,您不希望文件出现在任何相应的分支历史记录中。 例如,您不想拥有一个包含所有文件的master分支,而希望将其分支为team1
分支,然后git rm
这些文件。 “秘密”文件将保留在分支历史记录中,限制访问无济于事。 因此,您要么必须对分支之间的文件进行明确的分隔,要么要使用一个卫生脚本,该脚本在每次决定合并时都会应用git filter-branch
来删除文件,并冒着再次引入文件的风险。
详细说明最后一个例子。 假设您将team2
工作合并到master分支中,现在想与team1
共享总体进度。 你不能简单地合并master
成team1
,但你可以转到master
作为master-sanitized
,运行filter-branch
删除文件team1
不应该看到,然后合并master-sanitized
到team1
,丢弃临时党支部。 但是,所有这些并不能避免您重写提交实际上是在新的sha1-s中重新引入它们,因此您的合并将一直是与-s ours
或-X theirs
的解决冲突的痛苦。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.