web-dev-qa-db-fra.com

Comment utiliser le rebase interactif de Git avec un référentiel local uniquement (pas distant / Origin)?

J'utilise git comme système de contrôle de source local principalement pour l'historique et le suivi des différences. Je veux toujours utiliser rebase pour faire des corrections/corrections sur les validations WIP que je ferai périodiquement. Quand j'essaie de faire git rebase -i cependant, j'obtiens ce qui suit:

There is no tracking information for the current branch.
Please specify which branch you want to rebase against.
See git-rebase(1) for details

    git rebase <branch>

If you wish to set tracking information for this branch you can do so with:

    git branch --set-upstream-to=<remote>/<branch> MyBranch

Il semble que git ne s'attende pas à ce que vous utilisiez un rebase interactif sans télécommande en amont? Comment je fais ça?

35
mcw

git rebase -i en abrégé, sans spécifier de branche de destination, git supposera que vous essayez de rebaser contre une branche distante suivie par votre branche. C'est pourquoi le message d'erreur mentionne des informations sur les télécommandes.

Lorsque vous spécifiez une cible, git rebasera contre cela commit-ish :

git rebase -i <commit-ish>
33

Donc en bref - si vous avez 3 commits locaux et que vous voulez maintenant les rebaser/écraser/etc de manière interactive:

git rebase -i HEAD~3

(Voir l'explication de Sébastien!)

21
MikeW