在一个git子目录中进行git init

9
我有一个git仓库,里面有一些子目录:
~/src
~/src/.git
~/src/mystuff
~/src/otherstuff

现在我想与其他人分享src/otherstuff。他们应该能够克隆它并推送otherstuff中的更改,但我不希望他们能够访问srcmystuff中的提交,甚至看到它们的存在。
你如何在git中处理这个问题?

1
使用两个仓库怎么样,一个作为另一个的子模块? - Eric Walker
2
是的,关于它有什么问题吗?这是什么意思,我该如何做等等。 - wim
1
请参见:Git 子模块 - Santa
3
好的,您的情况是在一种不符合Git本意的方式使用Git。 :) 那些仅影响“mystuff”或同时影响“mystuff”和“otherstuff”的版本会发生什么?您不能只是裂开一个Git仓库并期望它能正常工作。子模块用于将外部仓库连接在一起,就像svn:externals一样。 - Nick Veys
2
这样的东西可行吗?https://dev59.com/unI-5IYBdhLWcg3w0L_x 还是你想要保持这个仓库完整,但仍然只分享那个子目录? - Nick Veys
显示剩余2条评论
1个回答

12
在git repo中执行git init是可行的:您在其中初始化嵌套repo的目录将被父repo忽略。
然而,如果该子目录的历史记录很重要,则最好将其导出为单独的repo(如Nick 建议的)。
从那里开始,您可以通过将新repo声明为父repo的子模块来保持两个repo同步。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接