104 votes

Comment puis-je fusionner un sous-répertoire dans le répertoire git?

Est-il possible de fusionner uniquement les modifications pour un sous-répertoire à partir d'un local de la branche git distant git branch ou est-il "tout ou rien"?

Par exemple, j'ai:

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

et

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

Je ne veux fusionner le contenu de la branche-dir-1 avec le contenu de la branche b dir-1.

87voto

VonC Points 414372

Comme une alternative à la question "Comment faire de la fusion sélective de fichiers avec git-fusion?", Je viens de trouver cette GitHub fil qui pourrait être plus adapté pour la fusion d'un ensemble de sous-répertoire, basé sur git lecture de l'arbre:

  • Mon repository => cookbooks
    Mon référentiel répertoire cible => cookbooks/cassandra

  • Dépôt distant => infochimps
    Dépôt distant source je veux fusionnés en cookbooks/cassandra => infochimps/cookbooks/cassandra

Voici les commandes que j'ai utilisé pour les fusionner

  • Ajouter le dépôt et aller le chercher
git remote add -f infochimps git://github.com/infochimps/cluster_chef.git
  • Effectuer la fusion
git merge -s nôtre --no-commit infochimps/master
  • Fusionner seulement infochimps/cookbooks/cassandra en cassandra
git lecture de l'arbre --prefix=cassandra/ -u infochimps/master:des livres de cuisine/cassandra
  • Valider la modification
 git commit -m "fusion dans infochimps cassandra"

5voto

codebrickie Points 6067

Je l'ai obtenu à partir d'un fil de discussion du forum à Eclipse et cela a fonctionné comme un charme:

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

2voto

Sun Yin Points 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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X