2011-09-12 12 views
40

Tengo 2 ramas, que no están listas para fusionarse todavía, pero tienen alguna lógica complementaria, que me gustaría revisar (antes de fusionar)¿Es posible ver múltiples ramas de git al mismo tiempo para el mismo proyecto?

¿Puedo verificar múltiples ramas de git del mismo proyecto? ¿Es posible?

+0

Podrás hacerlo con Git 2.5+ y su nuevo comando 'git checkout --to = '. Ver [mi respuesta a continuación] (http://stackoverflow.com/a/30186481/6309). – VonC

+0

La sintaxis real es 'git worktree add '. He actualizado [mi respuesta a continuación] (http://stackoverflow.com/a/30186481/6309). – VonC

Respuesta

36

Simplemente puede copiar el repositorio a una nueva ubicación (ya sea copiando literalmente el directorio o usando git clone --shared) y eche un vistazo a una rama por ubicación.

También puede usar git-worktree para crear múltiples directorios de trabajo desde una única instancia de un repositorio.

De lo contrario, el medio principal para comparar archivos entre ramas antes de fusionarlos es git diff.

+3

Nota: me doy cuenta de que su respuesta fue downvoted hoy (http://stackoverflow.com/posts/7393302/timeline), pero no lo voté negativamente;) Simplemente (hace 2 años) señalé el nuevo comando git worktree. – VonC

1

Lo primero que se me viene a la mente es que compruebe cada rama en un proyecto separado. Así : 1. checkout de un branch Un clon de primaria (1) 2. Crear un nuevo clon (2) 3. checkout de un branch B en el clon 2

segundo enfoque podría ser la creación de una nueva rama (alias C) y fusionar ambas ramas A y B a ella. Si son complementarios, esto podría ayudar con su revisión.

-1

Como ya se ha mencionado, puede diff ramas con 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. 

Extracto de arriba es de la documentación Git.

1

Sí, es posible con el cuidado apropiado. Sin embargo, está sacando una de las copias del directorio de git normal usando la opción --work-tree=<path>, por lo que git no verá los cambios allí a menos que usted específicamente lo indique. Di un ejemplo aquí single-working-branch-with-git - vea el segmento ACTUALIZADO.

Tenga en cuenta que el git-new-workdir no funciona en Windows XP ya que requiere enlaces de estilo Unix.

6

Con Git 2.5+ (Q2 2015), un repositorio git apoyará múltiples árboles que trabajan congit worktree add <path> (y que reemplazará contrib/workdir/git-new-workdir)

Esos "vinculados" árboles de trabajo están efectivamente registrados en el principal repo nueva carpeta $GIT_DIR/worktrees (para que funcione en cualquier sistema operativo, incluido Windows).

Ver más en "Multiple working directories with Git?"

+0

Tenga en cuenta que a diferencia de git-new-workdir, git worktree no le permite crear múltiples worktrees para la misma rama:/ – NikiC

+2

@NikiC Puede agregar el indicador '--force' (' -f' también funciona) de acuerdo con [el documento] (https://git-scm.com/docs/git-worktree#_options) –

-1

Ahora git incluye el comando worktree para hacer exactamente eso.

Cuestiones relacionadas