Можно ли скопировать папку git в Windows для управления несколькими ветками? - PullRequest
0 голосов
/ 09 января 2019

Я новичок в git и имею git-репозиторий, который я использую с GitKraken. В этом репозитории у меня есть несколько веток, и я могу переходить от ветви к ветви, чтобы вносить изменения, где это необходимо.

Сейчас я нахожусь в ситуации, когда я буду вносить некоторые большие изменения в 1 ветку, которые я не хочу фиксировать, но в то же время я хотел бы внести небольшие изменения в другую ветку.

Я привык работать с TFS и там я могу просто оформить ветку в другую папку.

Я пытался просто скопировать папку, и у меня первое впечатление, что это должно работать ....

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

Версия git ниже 2.5, поэтому я не могу использовать Git-worktree.

Можно ли просто скопировать папку или это может иметь неожиданный эффект?

Ответы [ 2 ]

0 голосов
/ 09 января 2019

Да, если вы копируете всю папку из корня кассы, включая скрытую папку .git, вы можете вносить изменения в каждую рабочую копию независимо. Каждый из них содержит свою собственную копию объектов репозитория, и они будут вести себя точно так же, как если бы вы запустили два отдельных клона.

Как обсуждалось в комментариях, это не обязательно хороший вариант использования для этого, хотя: было бы легче (и более эффективно использовать дисковое пространство) зафиксировать ваши большие изменения в локальной ветке, чтобы вы могли затем переключиться и внести другие изменения. Там нет реального недостатка в этом; если вы хотите удалить этот временный коммит позже, это также легко сделать.

Однако, если вы собираетесь это сделать, то вы, вероятно, захотите

  • сначала запустите git repack -ad, чтобы в дереве объектов было меньше файлов для копирования
  • рассмотрите возможность использования git clone --reference вместо этого, что может быть немного более эффективным с точки зрения дискового пространства
  • или если вам нужна чистая рабочая копия, вы можете создать новую папку рабочей копии, скопировать только скрытую папку .git в новую рабочую копию и затем git reset --hard, чтобы также проверить все файлы там.
0 голосов
/ 09 января 2019

Возможно, вы захотите посмотреть, подойдет ли вам git stashing. Я не рекомендую копировать в новую папку. Главным образом потому, что я не знаю, возможно ли это вообще, и я никогда не рассматривал это как рекомендацию. Клонирование также должно работать, но похоже, что вы заинтересованы в отложении / сохранении, а не в фиксации изменений в branch1 перед проверкой branch2.

https://git -scm.com / книга / а / v1 / GIT-Tools-припрятать

...