2009-11-20 7 views
24

Je souhaite fusionner deux référentiels distants dans Git.Fusion de deux référentiels distants dans Git

L'un est un référentiel grand public, dont je n'ai pas les droits d'écriture. Je veux suivre sa branche maîtresse.

L'autre est maintenu par nous, j'en ai plein droits.

Je veux suivre le code grand public. En même temps, notre modification serait enregistrée dans mon dépôt distant.

Comment faire?

Répondre

35

Je recommande:

  • clonage yourRemoteRepo (cette façon, vous pouvez facilement tirer/pousser de cette prise en pension)
  • ajouter mainstreamRepo comme une télécommande et aller chercher sa branche, puis suivre celui qui l'intérêt vous

    git clone git://yourRemoteRepo 
    git remote add mainStreamRepo http://mainStreamRepo 
    git fetch mainStreamRepo 
    git checkout -b mainStreamMaster mainStreamRepo/master 
    git checkout master 
    

À partir de là, vous pouvez

  • fusion mainStreamMaster à votre master,
  • ou rebasage votre master au-dessus de mainStreamMaster (afin d'intégrer toute l'histoire de mainStreamMaster dans votre branche master)
  • ensuite quelques évolutions à master (ou à un branche spécifique à un sujet) que vous pouvez appuyer sur yourRemoteRepo.
+0

@TravisCunningham (http://stackoverflow.com/users/2487332/travis-cunningham) merci pour la modification ([incorrectement rejeté] (http://stackoverflow.com/review/suggested-edits/2317758)): J'ai ajouté le nom de la télécommande que j'avais initialement oublié. – VonC

Questions connexes