Могу ли я иметь один репозиторий для нескольких разных локальных позиций

На Bitbucket у меня есть несколько репозиториев, один из них общий (например, библиотека).

У меня есть несколько проектов, использующих один и тот же репозиторий. На данный момент каждый проект имеет другой репозиторий исходного дерева, связанный с одним и тем же репозиторием на Bitbucket, и я хотел бы знать, возможно ли создать только один репозиторий исходного дерева для нескольких разных мест на моем компьютере.

Например :

I have 3 projects call them A, B & C
On Bitbucket I have 5 repositories call them (AA, BB, CC, DD, General)
What I have is
Project A need AA, BB & General
Project B need CC & General
Project C need DD & General

Я хотел бы знать, могу ли я сделать в исходном дереве только 1 репозиторий, связанный с 3 проектами в 3 разных местах, или если можно использовать только одно место, и мне нужно создать 3 исходных хранилища для каждого проекта.

Спасибо за ваши ответы.


person user3718160    schedule 22.06.2016    source источник


Ответы (1)


... один репозиторий исходного дерева для нескольких разных мест на моем компьютере.

Да, ты можешь.

Вам нужно будет использовать git v2.5 и выше, а затем вы можете использовать файл git worktree.

Рабочее дерево Git было представлено в 2007 году в папке contrib в репозитории git и называлось new-workdir.


git worktree

Например:

git worktree add <second path>

создаст еще одну папку на вашем компьютере, которая позволит вам одновременно работать с разными ветками.

git worktree создаст 2 отдельные рабочие папки, отделенные друг от друга, указывая на один и тот же репозиторий.

Это позволит вам проводить любые эксперименты с новым рабочим деревом, не оказывая никакого влияния на сам репозиторий. На прикрепленном изображении видно, что есть две отдельные рабочие папки, но обе они используют одно репо и совместно используют содержимое.

Вот пример того, как создать новое рабочее дерево и каков его результат:

введите здесь описание изображения

person CodeWizard    schedule 22.06.2016
comment
это для работы с двумя разными версиями одного и того же кода, верно? Я хочу, чтобы уникальный репозиторий был точно таким же, как в трех разных проектах, и если я внесу изменения в один из них, то в двух других также будут изменения без необходимости нажимать их на удаленный компьютер, а затем возвращать их обратно на 2 других проекта - person user3718160; 22.06.2016
comment
Так что проверьте ветку 3 раза под другим именем. вы можете использовать git cherry-pick, чтобы добавить любую желаемую фиксацию в любой заданный bramch › Я хочу, чтобы уникальный репозиторий был точно таким же в 3 разных проектах, и если я внесу изменение в один из них, то 2 других также имеют изменение без необходимости нажимать его на удаленном компьютере, а затем возвращать его обратно в 2 других проекта. Это ТОЧНО то, для чего предназначено рабочее дерево, это общий репозиторий, где вы можете работать с несколькими ветвями и обмениваться данными между несколькими экземплярами. - person CodeWizard; 07.04.2017
comment
Я думаю, что OP говорит о проектах Bitbucket, хотя - person endolith; 22.06.2020