我想从和推送到只有一个git存储库的子目录。下面是我想要实现的一个例子:
假设我有一个存储库,包含两个文件夹A
和B
(它们是顶级文件夹,如果重要的话)。我想工作,并推动变化到B
只,而其他人正在A
工作,甚至可能在B
以及。因为我想把我的修改提交回来,所以我不能把A
放在.gitignore
文件中,也不能用git rm -rf --cached A
,因为A
是别人需要的,但是我知道,我永远不会碰它包含的任何文件,我就是不想存储它不需要的文件。我也不能使用submodules
,因为我不想更改原始存储库,也不想维护第二个存储库。
所以我的问题是:这是可能的吗?如果可以,如何实现这一目标?
您不能从repo中的特定文件夹中拉或推。你拉或推树枝
你是否考虑过在B
上做分支并切换到它,这样你就不会污染你的团队在A
上做的工作?
如果你想将你的团队在主分支上所做的工作检索到你自己的分支中,你甚至可以重新建立你的分支。
可以将A添加到.git/info/exclude文件中。该文件的工作原理就像。gitignore,但不会离开本地机器,因此不会影响您的同事。
另一种方法是拆分您的repos,然后使用subtree而不是submodules来跟踪子目录中的更改。子树可以避免子模块带来的一些不便,但是保持同步仍然需要做更多的工作。