38 votos

¿Cómo puedo combinar un sub directorio de git?

Es posible combinar sólo los cambios para un sub-directorio de un local de git branch a un remoto git branch o es de "todo o nada"?

Por ejemplo, yo tengo:

branch-a
 - content-1
 - dir-1
   - content-2

y

branch-b
 - content-1
 - dir-1
   - `content-2

Yo sólo quiero combinar el contenido de rama-dir-1 con el contenido de la rama-dir b-1.

42voto

VonC Puntos 414372

Como una alternativa a la pregunta "¿Cómo combinar selectiva los archivos con git merge?", Acabo de encontrar este GitHub hilo de lo que podría ser adaptado para la fusión de todo un subdirectorio, basado en git leer-árbol:

  • Mi repositorio => cookbooks
    Mi repositorio directorio de destino => cookbooks/cassandra

  • Repositorio remoto => infochimps
    Repositorio remoto origen quiero fusionado en cookbooks/cassandra => infochimps/cookbooks/cassandra

Aquí están los comandos que se utilizan para combinar con ellos

  • Añadir el repositorio y recuperar
git remote add -f infochimps git://github.com/infochimps/cluster_chef.git
  • Realizar la combinación
git merge -s nuestro, ¡no cometer infochimps/master
  • Combinar sólo infochimps/cookbooks/cassandra a cassandra
git leer árbol --prefix=cassandra/ -u infochimps/master:libros de cocina/cassandra
  • Confirmar el cambio
 git commit-m "fusión en infochimps cassandra'

6voto

codebrickie Puntos 6067

Tengo esto desde un hilo del foro en Eclipse y trabajó como un encanto:

git checkout source-branch
git checkout target-branch <directories-or-files-you-do-**NOT**-want> 
git commit
git checkout target-branch
git merge source-branch

0voto

Sun Yin Puntos 1
create git repo contains both branch-a and branch-b
switch to branch-a
git diff branch-b dir-1 > a.diff
patch -R -p1 < a.diff

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X