web-dev-qa-db-fra.com

Qu'est-ce que 'git remote add upstream' aide à réaliser?

Je lisais sur: https://wiki.diasporafoundation.org/Git_workflow#Rebase_your_development_branch_on_the_latest_upstream

Voici un extrait:

Votre dépôt à jour

Pour obtenir les dernières mises à jour à partir du coffre de développement, effectuez une configuration unique afin de définir le référentiel principal GitHub en tant que télécommande en entrant:

$ git remote add upstream git://github.com/diaspora/diaspora.git

Redéfinissez votre branche de développement sur les dernières technologies en amont

Pour que votre branche de développement reste à jour, modifiez vos modifications par-dessus l'état actuel du maître en amont. Voir le Qu'est-ce que git-rebase? section ci-dessous pour en savoir plus sur le rebasement.

Si vous avez configuré une branche en amont comme décrit ci-dessus et une branche de développement appelée 100-retweet-bugfix, vous devez effectuer une mise à jour en amont, mettre à jour votre maître local et rebaser votre branche de la manière suivante:

$ git fetch upstream

$ git checkout master

$ git rebase upstream/master

$ git checkout 100-retweet-bugfix

[assurez-vous que tout est engagé au besoin dans la branche]

$ git rebase master

Pourquoi l'ajout d'un "amont distant" est-il nécessaire dans ce cas? Je ne viens pas de faire:

$ git checkout master

$ git pull Origin master

$ git checkout 100-retweet-bugfix

[assurez-vous que tout est engagé au besoin dans la branche]

$ git rebase master
59
ben39

Le wiki parle d'un point de vue de référentiel. Vous avez accès à Pull and Push depuis Origin, qui sera votre branche du dépôt principal de la diaspora. Pour extraire les modifications de ce référentiel principal, vous ajoutez une télécommande "en amont" dans votre référentiel local, en pointant sur cet original et en tirant dessus.

Donc, "Origin" est un clone de votre dépôt de fourche, à partir duquel vous poussez et tirez. "En amont" est un nom pour le référentiel principal, d'où vous extrayez et maintenez un clone de votre fork, mais vous ne disposez pas d'un accès Push à celui-ci.

67
manojlds

Ceci est utile lorsque vous avez votre propre Origin qui n’est pas upstream. En d'autres termes, vous pouvez avoir votre propre référentiel Origin que vous effectuez dans le développement et les modifications locales puis que vous fusionnez parfois upstream modifications. La différence entre votre exemple et le texte mis en évidence est que votre exemple suppose que vous travaillez directement avec un clone du référentiel en amont. Le texte en surbrillance suppose que vous travaillez sur un clone de votre propre dépôt qui était probablement à l'origine un clone en amont.

15
smparkes

Je pense que cela pourrait être utilisé pour "bifurquer rétroactivement"

Si vous avez un dépôt Git et que vous avez maintenant décidé qu'il aurait dû en créer un autre. Rétroactivement, vous souhaitez qu'il devienne une fourchette, sans perturber l'équipe qui utilise le référentiel en ayant besoin de cibler un nouveau référentiel.

Mais je peux me tromper.

4
Onceler