У меня есть большой проект (скажем, A repo
), и в нем есть одна дочерняя папка, пришедшая из B repo
. Я бы встретил предупреждение, как показано ниже, когда я фиксирую из A repo
warning: adding embedded git repository: extractor/annotator-server
hint: You've added another git repository inside your current repository.
hint: Clones of the outer repository will not contain the contents of
hint: the embedded repository and will not know how to obtain it.
hint: If you meant to add a submodule, use:
hint:
hint: git submodule add <url> extractor/annotator-server
hint:
hint: If you added this path by mistake, you can remove it from the
hint: index with:
hint:
hint: git rm --cached extractor/annotator-server
hint:
hint: See "git help submodule" for more information.
Я видел git-submodule
и git-subtree
:
Поддержание Git-репо внутри другого Git-репо
https://www.atlassian.com/blog/git/alternatives-to-git-submodule-git-subtree
Но они мне не нравятся, потому что им нужен дополнительный конфиг.
То, что я хочу, например:
структура как:
A/
--- a.py
--- B/
--- B/b.py
Когда я меняю B/b.py
-
Если я нахожусь на пути
A/
,git add
может обнаружить изменениеB/b.py
,git push
толькоB/b.py
это в репо.git add . (would add changes under A/ ) git push (would push changes under A/ ) git pull (would pull changes under A/ ) git clone XXX:A (would clone all files under A/ , A/B/ is just looks like plain folder with all files, not a repo )
-
Если я нахожусь на пути
A/B/
,git add
только добавляет измененияB/b.py
в B repo, иgit push
только фиксирует это в B repo.git add . (would add changes under B/ , but not add changes to A repo) git push (would push changes under B/ , but not push changes to A repo) git pull (would clone changes under B/ , ) git clone XXX:B (would clone all files under B/ )
-
Как только я хочу snyc A и B на другой машине, просто сделать
git clone A rm -rf A/B/ git clone B ./B git add . && git commit 'sync with B'
Другими словами, A и B действуют как отдельное репо.
Но правда в том, что репо рассматривает репо как субмодуль:
Репо https://github.com/eromoe/test
B репо https://github.com/eromoe/test2
Как заставить репо отслеживать все файлы в A/
, а репо B отслеживать все файлы в A/B/
? Я хочу, чтобы A и B действовали как автономное хранилище без каких-либо других настроек.