2015-11-05 2 views
5

Есть ли способ поделиться историей репозитория в git без повторного клонирования всей папки? Что эквивалентно Mercurial-хgit эквивалент 'hg share'?

hg share project project-branch 

https://www.mercurial-scm.org/wiki/ShareExtension

+0

Хммм, я не знаю меркуризма вообще. Наверное, я понял, что сайт говорит, что вам нужно несколько рабочих деревьев с одной историей. Это [это] (http://stackoverflow.com/questions/6270193/multiple-working-directories-with-git), что вы ищете? Похоже, что ближе всего вы можете с git – houtanb

+0

Не могли бы вы рассказать об этой части «поделиться» тем, кто не очень знаком с Mercurial? Однако я сделаю предположение. Если вы хотите сделать еще одно локальное репо и сделать некоторую историю из существующего там репо, используйте тот факт, что Git отлично справляется с извлечением истории из * local * repos - просто используйте '/ path/to/local/repo' или' file: /// path/to/local/repo' в качестве вашего URL-адреса. Более того, если используется первая форма, Git будет использовать жесткую привязку, если она доступна, для экономии места. – kostix

ответ

5

Если я понять документацию для hg share, ближайший Git эквивалент будет git worktree, новая функция в версии 2.5:

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

Репозиторий git может поддерживать несколько рабочих деревьев, позволяя вам проверять несколько ветвей за раз. С git worktree add новое рабочее дерево связано с репозиторием. Это новое рабочее дерево называется «связанным рабочим деревом», а не «основным рабочим деревом», подготовленным «git init» или «git clone». В репозитории есть одно основное рабочее дерево (если это не голый репозиторий) и нулевые или более связанные рабочие деревья.

Я считаю, что это все еще в бета-версии, и есть явное предупреждение не использовать его с подмодулями.

Запуск git worktree add ../some/path/ branch из репозитория создает новую рабочую копию с branch, выданную по адресу ../some/path/.

Более подробный обзор этой новой команды можно найти on GitHub's blog.

+0

Да, это точно! Я понятия не имел, что они добавили эту функциональность :) Спасибо. – endavid

Смежные вопросы