我需要在git存储库中添加一个文件夹,该文件夹位于main(root)文件夹之外。我希望git将其视为repo中的其他普通文件夹:就像它位于主文件夹中一样。
当然,我可以把它复制到那里,并且必须一遍又一遍地做。但我想以某种方式提及它,找到一个更优雅的解决方案。
有没有办法做到这一点?
答案 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并不容易。