Подтвердить что ты не робот

Можно ли одновременно просматривать несколько ветвей git для одного и того же проекта?

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

Можно ли просмотреть несколько ветвей git одного и того же проекта? Возможно ли это?

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

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

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

Ответ 3

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

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

Ответ 4

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

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

Ответ 5

Как уже упоминалось, вы можете разделить ветки с помощью 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.

Ответ 6

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