Git,Github.com
我有一个包含文件的项目:A,B,C,D,E。
然后我拉1队工作,让A,C,D与我的工作合并,然后拉2队工作,让B,D,E与我的工作合并。
如果需要,我可以为每个团队创建一个回购。
我已阅读所有文章并尝试了他们提供的所有内容。
我不想相信没有简单而优雅的解决方案只是为了忽略每个推送或分支或远程仓库或其他东西的某些文件......
答案 0 :(得分:2)
我会创建三个项目:
如果我想要更精细的访问控制,将A与C或B从D分开,我会进一步拆分项目。
我认为我不会尝试使用忽略文件进行访问控制。
答案 1 :(得分:1)
Git没有访问控制权,因此:“ git ”,“秘密文件”和“易于维护”只是没有好好混合。如果要添加访问控制层,请查看gitolite和Git on the server - gitolite。
你需要进行实验,但是你可以按照从空回购开始,每个团队有一个分支的方式工作。但请注意,您不希望文件出现在任何相应的分支历史记录中。例如,您不希望拥有包含所有文件的主分支,即分支为team1
分支,然后git rm
文件。 “秘密”文件将保留在分支历史记录中,限制访问权限将无济于事。因此,您必须对分支机构之间的文件进行明确分离,或者每次您决定合并并运行再次引入文件的风险时,都要使用git filter-branch
来删除文件的卫生脚本。
详细说明最后一个例子。假设您将team2
工作合并到主分支中,现在想要与team1
分享整体进度。您不能简单地将master
合并到team1
,但您可以将master
分支为master-sanitized
,运行filter-branch
以删除文件team1
不应该看到,然后将master-sanitized
合并到team1
,丢弃临时分支。然而,所有这些都无法避免重写提交的事实实际上是用新的sha1-s重新引入它们,因此合并将是-s ours
或-X theirs
解决冲突的持续痛苦。