Можно ли одновременно просматривать несколько веток git для одного и того же проекта? - PullRequest
53 голосов
/ 13 сентября 2011

У меня есть 2 ветки, которые еще не готовы к слиянию, но есть дополнительная логика, которую я хотел бы рассмотреть (до слияния)

Могу ли я проверить несколько веток Git одного и того жепроект?Возможно ли это?

Ответы [ 6 ]

53 голосов
/ 13 сентября 2011

Вы можете просто скопировать репозиторий в новое место (либо буквально скопировав каталог, либо используя git clone --shared) и проверить одну ветку на местоположение.

Вы также можете использовать git-worktree для создания нескольких рабочих каталогов из одного экземпляра хранилища.

В противном случае основным средством сравнения файлов между ветвями до их объединения является git diff.

10 голосов
/ 12 мая 2015

С Git 2.5+ (2 квартал 2015 года) репозиторий Git будет поддерживать несколько рабочих деревьев с git worktree add <path> (и это заменит contrib/workdir/git-new-workdir)

Эти «связанные» рабочие деревья на самом деле записываются в новую папку $GIT_DIR/worktrees основного репо (так что работают на любой ОС, включая Windows).

Подробнее см. * Несколько рабочих каталоговс Git? "

1 голос
/ 13 сентября 2011

Да, это возможно при соответствующем уходе.Однако вы забираете одну из копий из обычного каталога git с помощью опции --work-tree=<path>, поэтому изменения там не будут видны git, если вы специально не укажете это.Я привел пример здесь single-working-branch-with-git - см. ОБНОВЛЕННЫЙ сегмент.

Обратите внимание, что git-new-workdir не работает в Windows XP, так как требует стиль Unixссылки.

1 голос
/ 13 сентября 2011

Первое, что приходит мне в голову, это оформить каждую ветку в отдельном проекте. Так: 1. контрольная ветка А на первичном клоне (1) 2. создать новый клон (2) 3. Оформить заказ филиала В в клоне 2

Второй подход может состоять в том, чтобы создать новую ветвь (также известную как C) и объединить в нее обе ветви A и B. Если они бесплатны, то это может помочь с вашим отзывом.

0 голосов
/ 30 декабря 2015

Теперь git включает команду worktree, чтобы сделать именно это.

0 голосов
/ 13 сентября 2011

Как уже упоминалось, вы можете различать ветки с помощью git diff:

git diff [--options] <commit> [--] [<path>…]

This form is to view the changes you have in your working tree relative to the named <commit>. You can use HEAD to compare it with the latest commit, or a branch name to compare with the tip of a different branch.

Выдержка из документации Git.

...