Compte tenu du repo Foo et du repo Bar. Je veux fusionner Bar avec Foo, mais uniquement dans une branche séparée, appelée baz
.
git checkout -b baz
<= mettez le repo Bar ici.
Vous ne pouvez pas fusionner un référentiel dans une branche . Vous pouvez fusionner une branche d'un autre référentiel dans une branche de votre référentiel local. En supposant que vous ayez deux référentiels, foo
et bar
tous deux situés dans votre répertoire actuel:
$ ls
foo bar
Changez dans le foo
référentiel:
$ cd foo
Ajoutez le bar
référentiel en tant que distant et récupérez-le:
$ git remote add bar ../bar
$ git remote update
Créez une nouvelle branche baz
dans le foo
référentiel en fonction de votre branche actuelle:
$ git checkout -b baz
Fusionner la branche somebranch
du bar
référentiel dans la branche actuelle:
$ git merge --allow-unrelated-histories bar/somebranch
( --allow-unrelated-histories
n'est pas nécessaire avant la version 2.9 de git)
--allow-unrelated-histories
à la commande git merge.Mis à jour avec des commandes "réelles":
Commencez à partir de votre répertoire repo, assurez-vous que votre copie de travail est propre (aucun fichier modifié, ajouté ou supprimé).
Créez une nouvelle succursale:
git checkout -b <my-branch>
Ajoutez la télécommande secondaire, puis récupérez-la:
Fusionnez l'une de leurs succursales dans votre succursale actuelle:
git merge <repo-name>/<their-branch>
Si vous ne savez pas ce que
<their-branch>
vous voulez, allez-ymaster
Si vous êtes sûr de vouloir accepter toutes les modifications à distance et éviter les conflits ( écraser les vôtres ), vous pouvez spécifier
-X theirs
comme optiongit merge
à la dernière étape.Si vous voulez l'ajouter dans un sous-répertoire, vous devriez probablement utiliser les sous-modules git
la source
En utilisant le guide de larsks, j'ai pu le faire en utilisant SourceTree.
la source