另一个存储库的子目录中的完全独立的存储库?

问题描述 投票:0回答:1

我尝试过:

git 子模块

从父存储库中调用

git submodule add [-f] <url>
git config -f .gitmodules submodule.<name>.ignore all

这让父模块忽略对子模块所做的所有更改,但在暂存子模块之后,我仍然需要提交 gitlink 并将其推送到我的父模块上游。我还尝试将带有子模块的文件夹添加到

.gitignore
,但是如果我从父级运行
git status
,gitlink 仍然会列出。

git 子树

从父存储库中调用

git subtree add --prefix <name> <url> main

但同样在这里,父存储库并不完全独立于子模块。

嵌套存储库

我排除了

.gitignore
中的一个文件夹,然后将另一个存储库克隆到该文件夹中。父存储库现在忽略此“子存储库”中的所有更改,但“子存储库”会跟踪父存储库中的更改,这也不是我想要的。

目标

我需要另一个存储库的子文件夹中的完全独立的存储库。父文件夹中的更改不应影响子文件夹中的存储库,子文件夹中的存储库的更改不应影响父存储库。

如何实现此设置?

git git-submodules git-subtree
1个回答
0
投票

将文件夹添加到

.gitignore
就足够了。

您的情况有问题。因为进行纯粹的实验清楚地表明,忽略“孩子”是有帮助的(开玩笑,对这个怪癖感到抱歉)

git init parent
cd parent
echo 'child' > .gitignore
echo 'parent readme' > parent-readme.md
git init child
cd child
echo 'child readme' > child-readme.md

现在你可以看到

git status
里面的
parent
显示如下

On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    .gitignore
    parent-readme.md

nothing added to commit but untracked files present (use "git add" to track)

并且在

git status
中的
child
文件夹中是

On branch master

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    child-readme.md

nothing added to commit but untracked files present (use "git add" to track)

© www.soinside.com 2019 - 2024. All rights reserved.