2012-01-20 1 views
42

Je lisais sur: https://wiki.diasporafoundation.org/Git_workflow#Rebase_your_development_branch_on_the_latest_upstreamQu'est-ce que 'git remote add upstream' aide à réaliser?

Voici un extrait:

Votre dépôt à jour

Afin d'obtenir les dernières mises à jour à partir du tronc de développement font un unique la configuration constituant le principal repo GitHub comme une télécommande par entrée:

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

Rebase votre branche de développement sur le dernier en amont

Pour garder votre branche de développement à jour, rebasez vos modifications sur le supérieur de 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 rebasage.

Si vous avez mis en place une branche amont comme détaillé ci-dessus, et une branche de développement appelé 100-retweet-bugfix, vous souhaitez mettre à jour en amont, mise à jour de votre maître local et rebasage votre succursale de celui-ci comme ceci:

$ git fetch upstream 

$ git checkout master 

$ git rebase upstream/master 

$ git checkout 100-retweet-bugfix 

[assurez-vous que tout est engagée si nécessaire dans la branche]

$ git rebase master 

Pourquoi ajouter une « distance en amont » nécessaire dans ce cas? Coudn't Je viens de le faire:

$ git checkout master 

$ git pull origin master 

$ git checkout 100-retweet-bugfix 

[assurez-vous que tout est engagée si nécessaire dans la branche]

$ git rebase master 
+0

vous devriez faire 'git remote add' pas' git add remote' ... – Honey

Répondre

52

Le wiki parle d'un point de vue repo fourchu. Vous avez accès à tirer et pousser de l'origine, qui sera votre fourchette du repo principal de la diaspora. Pour tirer des changements de ce repo principal, vous ajoutez une télécommande, "en amont" dans votre repo local, pointant vers cet original et tirer de lui. Donc "origine" est un clone de votre repo de fourche, à partir de laquelle vous poussez et tirez. "Upstream" est un nom pour le repo principal, d'où vous tirez et maintenez un clone de votre fork mis à jour, mais vous n'avez pas d'accès push.

+1

Merci @manojlds! J'ai une question de suivi alors ici: [link] (http://stackoverflow.com/questions/8948964/git-rebase-master-then-push-origin-branch-results-in-non-fast-forward-error – ben39

13

Ceci est utile lorsque vous avez votre propre origin qui n'est pas upstream. En d'autres termes, vous pouvez avoir votre propre dépôt origin que vous modifiez en local et en développement, puis fusionnez occasionnellement les modifications upstream. La différence entre votre exemple et le texte mis en surbrillance est que votre exemple suppose que vous travaillez directement avec un clone du dépôt en amont. Le texte surligné suppose que vous travaillez sur un clone de votre propre dépôt qui était, à l'origine, un clone de l'amont.

+0

Merci @smparkes! C'était vraiment utile. J'ai une question de suivi alors ici: [link] (http://stackoverflow.com/questions/8948964/git-rebase-master-then-push-origin-branch-results-in-non-fast-forward-error – ben39

2

Je pense qu'il pourrait être utilisé pour « rétroactivement bifurquer »

Si vous avez une prise en pension Git, et ont décidé qu'il aurait dû fourchue une autre prise en pension. Rétroactivement, vous voudriez qu'il devienne une fourchette, sans perturber l'équipe qui utilise le repo en les obligeant à cibler un nouveau repo.

Mais je peux me tromper.

+0

Quelle est la valeur de cette réponse après avoir répondu à cette question il y a 5 ans? Et vous n'êtes toujours pas sûr de la réponse correcte ... –

+0

@MaciejJureczko Je ne suis pas le seul à me demander comment "fourrer rétroactivement", si cette question/réponse discute comment (ce que je pense c'est, mais je suis pas certain). Cette question pourrait ensuite être utilisée comme réponse à d'autres questions. https://stackoverflow.com/questions/30472771/marking-a-repo-as-a-fork-in-github-after-the-fact ... si c'est de cette manière que l'on peut fourrer rétroactivement, on peut maintenant le trouver avec ces termes de recherche. Il m'a fallu du temps pour penser que l'ajout d'un référentiel en amont pourrait être ce que je cherchais. Si OP était la seule audience, ils n'archiveraient pas les questions d'il y a «5 ans». – Onceler

Questions connexes