Можно ли скопировать папку git в Windows для управления несколькими ветками?
Я новичок в git и у меня есть git-репозиторий, который я использую с GitKraken. В этом репозитории у меня есть несколько веток, и я могу переходить от ветви к ветви, чтобы вносить изменения, где это необходимо.
Сейчас я нахожусь в ситуации, когда я буду вносить некоторые большие изменения в одну ветку, которые я не хочу фиксировать, но в то же время я хотел бы внести небольшие изменения в другую ветку.
Я привык работать с TFS и там я могу просто оформить ветку в другую папку.
Я попытался просто скопировать папку, и мое первое впечатление, что это должно работать....
Но я видел онлайн-замечания, в которых говорилось, что вместо этого я должен клонировать репозиторий.
Версия git ниже 2.5, поэтому я не могу использовать Git-worktree.
Можно ли просто скопировать папку или это может иметь неожиданный эффект?
2 ответа
Да, если скопировать всю папку из корня кассы, включая скрытую .git
папку, то вы можете вносить изменения в каждую рабочую копию независимо. Каждый содержит свою собственную копию объектов репозитория, и они будут вести себя точно так же, как если бы вы запустили два отдельных клона.
Как обсуждалось в комментариях, это не всегда хороший вариант использования для этого, однако: было бы легче (и более эффективно использовать дисковое пространство) фиксировать ваши большие изменения в локальной ветви, чтобы вы могли затем переключаться и делать другие изменения. Там нет реального недостатка в этом; если вы хотите удалить этот временный коммит позже, это также легко сделать.
Однако, если вы собираетесь сделать это, то вы, вероятно, хотите
- запустить
git repack -ad
во-первых, чтобы в дереве объектов было меньше файлов для копирования - рассмотреть возможность использования
git clone --reference
вместо этого, что может быть немного более эффективным с точки зрения дискового пространства - или вы хотите чистую рабочую копию, вы можете создать новую папку рабочей копии, копировать только скрытые
.git
папку в новую рабочую копию, а затемgit reset --hard
чтобы проверить все файлы там тоже.
Возможно, вы захотите посмотреть, подойдет ли вам git stashing. Я не рекомендую копировать в новую папку. Главным образом потому, что я не знаю, возможно ли это вообще, и я никогда не рассматривал это как рекомендацию. Клонирование также должно работать, но похоже, что вы заинтересованы в отложении / сохранении, а не в фиксации изменений в branch1 перед проверкой branch2.