Вопрос по git – Git: как избежать повторяющихся коммитов с помощью sub-sub-sub… Git -repos?

2

У меня есть много вложенных репо, то есть одно большое зонтичное репо с меньшими репо. Теперь, когда я делаю коммит в листовом репо, это автоматически означает, что я получаю изменения в его родителях. Если вы предполагаете, что структура представляет собой бинарное дерево, вы можете понять, что это нелепо - наличие глубокой структуры 5 git-repo может легко означать$ git commit -m 'did 1'; cd ..; git commit -m 'did 1 as mentioned'; ... git commit -m 'did 1 same as earlier', Как я могу избежать такого повторного совершения?

Example 1: a graphical example about the problem

X---------|
          |
Y---------A --------|
                    |
          B --------|<-----Pictures (graphic designers, animators--have repo)
                    |
          C --------|

A change in Pictures will change A, B, C, X and Y -- bloated commit, 6 commits due to one change, bad repetition! Now people working with Pictures can be totally different people to people doing things with X,Y, A, B and C, making things more obscure.

Example 2: hand-on -example to trial with sub-sub... -repos

Please, copy this hand-on -example here. You can test things there with 3-level -sub-repos.

So far Suggested

The basic submodules in Git, more here.

Gitslave here.

Ваш Ответ

3   ответа
0

ваш дизайн или структура плохие, возможно, причина для команды GoZoner"Don't create repositories within repositories.", но также возможно, что ваш проект пришел к точке, требующей более мощных инструментов. Бывают моменты, когда базовых подмодулей недостаточно, а ваши репозитории слишком широки, тогда вам, вероятно, стоит взглянуть на - GitSlave! Это рабочий процесс -инструмент, в котором вы указываете свой супер-репо, а затем подчиненные репозитории. Вместо повторяющихся коммитов вы используете команду gits - manualВот.

Related threads

Git: a tool to manage and to structure Projects?

Not sure whether you should use Gitslave? Read a small introduction here with a walkthrough.

0

связанными с другими файлами в других репозиториях? Если это так, несколько хранилищnot твой друг. Вы должны использовать несколько репозиториев только тогда, когда они полностью (или почти полностью) независимы друг от друга.

С другой стороны, если они полностью независимы, то вы можете просто использовать отдельные репозитории. Затем, чтобы создать какой-нибудь мастер-проект, который может использовать файлы из каждого репозитория (т. Е. Это зависит от других репозиториев), вы используете подмодуль.

Хранилище, являющееся подмодулем другого хранилища, означает, что оно зависит от этого подмодуля. Зависимые связи между подмодулями, вероятно, являются плохой идеей, если API не стабилен, но если API стабилен, поэтому изменения в одном не повлияют напрямую на другой (т. Е. Не требуется никаких изменений кода), тогда два подмодуля верхнего уровня могут зависеть друг от друга.

Теперь я все время говорил о подмодулях, но существует альтернатива, называемая "поддерево". если вы хотите проверить это, чтобы увидеть, что вы предпочитаете. Он находится в разделе contrib / основного репозитория git, поэтому по умолчанию он не установлен. Также существует стратегия поддерева (глава ProGit связана с комментарием)

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded"git subtree"Error: User Rate Limit Exceeded"git merge -s subtree"Error: User Rate Limit Exceeded"subtree"Error: User Rate Limit Exceeded"-s subtree"Error: User Rate Limit ExceededhereError: User Rate Limit Exceeded hhh
Error: User Rate Limit Exceededbare minimumError: User Rate Limit ExceedednoError: User Rate Limit ExceedednoError: User Rate Limit Exceeded
Error: User Rate Limit Exceededgit subtreeError: User Rate Limit Exceededgit merge -s subtreeError: User Rate Limit Exceeded
1

яющихся коммитов. Возможно, решит и другие вопросы.

Если вы действительно думаете, что вам нужны репозитории в репозиториях, используйте субмодули.

Error: User Rate Limit Exceededprogit.org/book/ch6-6.html
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded hhh

Похожие вопросы