请参阅git中的文件夹

时间:2013-11-26 10:51:10

标签: git

我需要在git存储库中添加一个文件夹,该文件夹位于main(root)文件夹之外。我希望git将其视为repo中的其他普通文件夹:就像它位于主文件夹中一样。

当然,我可以把它复制到那里,并且必须一遍又一遍地做。但我想以某种方式提及它,找到一个更优雅的解决方案。

有没有办法做到这一点?

1 个答案:

答案 0 :(得分:1)

无法将存在于git存储库根文件夹之外的文件夹添加到存储库中。

你可以做一些与此相当的事情就是让这个文件夹成为一个独立的git repo并将其推送到远程仓库。然后在现有的git存储库中子模块repo。

因此,假设您有两个文件夹:

foo/
   ..some code..
bar/
   .git/
   ..some code etc..

并且你想确保foo是bar repo的一员,但是你无法将其移入其中。我们可以让foo成为回购

git init foo
cd foo
git remote add origin my-external-host/foo.git
git add .
git commit -m "initial import"
git push -u origin master

然后我们可以将foo添加为bar

的子模块
cd bar
git submodule add my-external-host/foo.git
git submodule init
git submodule update
git add .
git commit -m "importing foo as submodule"
git push

现在我们有:

foo/
   .git/
   ..some code..
bar/
   .git/
   foo -> submodule to my-external-host/foo.git
   ..some code etc..

这样做的缺点是,如果您在foo文件夹中对git commit进行了更改,然后在bar / foo子模块上执行git pull以在bar repo中获取这些更新。

更好的解决方案是重新考虑您为什么要这样做。 Git不是为了满足您的需求而设计的,并且您尝试弯曲git并不容易。