Есть ли способ поделиться историей репозитория в git без повторного клонирования всей папки? Что эквивалентно Mercurial-хgit эквивалент 'hg share'?
hg share project project-branch
https://www.mercurial-scm.org/wiki/ShareExtension
Есть ли способ поделиться историей репозитория в git без повторного клонирования всей папки? Что эквивалентно Mercurial-хgit эквивалент 'hg share'?
hg share project project-branch
https://www.mercurial-scm.org/wiki/ShareExtension
Если я понять документацию для 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.
Да, это точно! Я понятия не имел, что они добавили эту функциональность :) Спасибо. – endavid
Хммм, я не знаю меркуризма вообще. Наверное, я понял, что сайт говорит, что вам нужно несколько рабочих деревьев с одной историей. Это [это] (http://stackoverflow.com/questions/6270193/multiple-working-directories-with-git), что вы ищете? Похоже, что ближе всего вы можете с git – houtanb
Не могли бы вы рассказать об этой части «поделиться» тем, кто не очень знаком с Mercurial? Однако я сделаю предположение. Если вы хотите сделать еще одно локальное репо и сделать некоторую историю из существующего там репо, используйте тот факт, что Git отлично справляется с извлечением истории из * local * repos - просто используйте '/ path/to/local/repo' или' file: /// path/to/local/repo' в качестве вашего URL-адреса. Более того, если используется первая форма, Git будет использовать жесткую привязку, если она доступна, для экономии места. – kostix