Je ne comprends pas la différence entre git rebase Origin
et git rebase Origin/master
. Dans mon cas, j'ai cloné un référentiel git deux fois. Dans le premier clone je dois utiliser git rebase Origin
et dans l'autre clone je dois utiliser git rebase Origin/master
.
Un exemple: http://paste.dennis-boldt.de/2011/05/11/git-rebase
git rebase Origin
signifie "rebase de la branche de suivi de Origin
", tandis que git rebase Origin/master
signifie "rebase de la branche master
de Origin
"
Vous devez avoir une branche de suivi dans ~/Desktop/test
, ce qui signifie que git rebase Origin
sait quelle branche de Origin
pour rebaser. Si aucune branche de suivi n'existe (dans le cas de ~/Desktop/fallstudie
), git ne sait pas quelle branche de Origin
il doit prendre et échoue.
Pour résoudre ce problème, vous pouvez rendre la piste de branche Origin/master
avec:
git branch --set-upstream-to=Origin/master
Ou, si master
n'est pas la branche actuellement extraite:
git branch --set-upstream-to=Origin/master master
Voici une meilleure option:
git remote set-head -a Origin
De la documentation:
Avec -a, la télécommande est interrogée pour déterminer son HEAD, puis $ GIT_DIR/remotes // HEAD est défini sur la même branche. Par exemple, si la télécommande HEAD est pointée vers la suivante, "l'origine git de la tête de jeu distante git - a" définira $ GIT_DIR/refs/remotes/Origin/HEAD aux références/télécommandes/Origin/next Cela ne fonctionnera que si refs/remotes/Origin/next existe déjà, sinon il doit être récupéré en premier.
Cela fait effectivement un bon bout de temps (depuis la v1.6.3); Je ne sais pas comment j'ai raté ça!
Vous pouvez créer un nouveau fichier sous [.git\refs\remotes\Origin] avec le nom "HEAD" et y mettre le contenu "ref: refs/remotes/Origin/master". Cela devrait résoudre votre problème.
Il semble que le clone d'un dépôt vide conduira à cela. Peut-être que les dépôts vides n'ont pas HEAD car aucun objet de validation n'existe.
Vous pouvez utiliser le
git log --remotes --branches --oneline --decorate
pour voir la différence entre chaque référentiel, alors que le "problème" n'a pas "Origine/HEAD"
Edit: donne un chemin en ligne de commande
Vous pouvez aussi utiliser la ligne de commande git pour faire cela, ils ont le même résultat
git symbolic-ref refs/télécommandes/origine/HEAD refs/télécommandes/origine/maître