108 votes

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 du tronc de développement, effectuez une configuration unique pour établir le dépôt principal GitHub en tant que distant en entrant:

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

Rebaser Votre Branche de Développement sur la Dernière Version en Amont

Pour maintenir à jour votre branche de développement, rebasez vos modifications sur l'état actuel de la branche principale en amont. Consultez la section qu'est-ce que git-rebase? ci-dessous pour en savoir plus sur le rebasage.

Si vous avez configuré une branche en amont comme détaillé ci-dessus et une branche de développement appelée 100-retweet-bugfix, vous mettriez à jour en amont, mettrez à jour votre branche locale principale et rebaserez votre branche à partir de celle-ci comme ceci:

$ git fetch upstream

$ git checkout master

$ git rebase upstream/master

$ git checkout 100-retweet-bugfix

[assurez-vous que tout soit commité comme nécessaire dans la branche]

$ git rebase master

Pourquoi l'ajout d'un 'remote upstream' est-il nécessaire dans ce cas? N'aurais-je pas pu simplement faire:

$ git checkout master

$ git pull origin master

$ git checkout 100-retweet-bugfix

[assurez-vous que tout soit commité comme nécessaire dans la branche]

$ git rebase master

113voto

manojlds Points 96599

Le wiki parle d'un point de vue de dépôt forché. Vous avez accès pour tirer et pousser à partir de l'origine, qui sera votre fork du principal dépôt diaspora. Pour récupérer des changements de ce dépôt principal, vous ajoutez un remote, "amont" dans votre dépôt local, pointant vers cet original et tirant de lui.

Donc "origine" est un clone de votre dépôt fork, à partir duquel vous poussez et tirez. "Amont" est un nom pour le dépôt principal, à partir duquel vous tirez et conservez un clone de votre fork mis à jour, mais vous n'avez pas accès pour pousser dessus.

19voto

smparkes Points 9849

Ceci est utile lorsque vous avez votre propre origin qui n'est pas upstream. En d'autres termes, vous pourriez avoir votre propre dépôt origin dans lequel vous effectuez des développements et des changements locaux, puis fusionnez occasionnellement les changements de upstream. La différence entre votre exemple et le texte en surbrillance est que votre exemple suppose que vous travaillez avec un clone du dépôt en amont directement. Le texte en surbrillance suppose que vous travaillez sur un clone de votre propre dépôt qui était, vraisemblablement, à l'origine un clone en amont.

10voto

Anmol Deep Points 43

Prenons un exemple : Vous voulez contribuer à Django, donc vous forkz son dépôt. Pendant que vous travaillez sur votre fonctionnalité, beaucoup de travail est fait sur le dépôt d'origine par d'autres personnes. Donc le code que vous avez forké n'est pas le plus à jour. Définir un amont distant et le récupérer de temps en temps assure que votre dépôt forké est synchronisé avec le dépôt d'origine.

3voto

Onceler Points 47

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

Si vous avez un dépôt Git, et que vous avez maintenant décidé qu'il aurait dû forké un autre dépôt. Rétroactivement, vous aimeriez qu'il devienne un fork, sans perturber l'équipe qui utilise le dépôt en les obligeant à cibler un nouveau dépôt.

Mais je pourrais me tromper.

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