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.
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.
Réponses:
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, fooet bartous deux situés dans votre répertoire actuel:
$ ls
foo bar
Changez dans le fooréférentiel:
$ cd foo
Ajoutez le barréférentiel en tant que distant et récupérez-le:
$ git remote add bar ../bar
$ git remote update
Créez une nouvelle branche bazdans le fooréférentiel en fonction de votre branche actuelle:
$ git checkout -b baz
Fusionner la branche somebranchdu barréférentiel dans la branche actuelle:
$ git merge --allow-unrelated-histories bar/somebranch
( --allow-unrelated-historiesn'est pas nécessaire avant la version 2.9 de git)
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:
git remote add <repo-name> git@github.com:xxx/<repo-name>.git
git remote update
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 theirscomme option git mergeà la dernière étape.
Si vous voulez l'ajouter dans un sous-répertoire, vous devriez probablement utiliser les sous-modules git
En utilisant le guide de larsks, j'ai pu le faire en utilisant SourceTree.
--allow-unrelated-historiesà la commande git merge.