/ / Comment faire le track de la branche master? - git

Comment faire la piste de branche master? - git

J'ai cloné un référentiel et travaillais dans la branche master. Il y avait un problème constant: git push (et git push) n'a pas fonctionné et a donné un long message d'erreur non interprétable. Par essais et erreurs, j'ai trouvé git push origin master fait la poussée correctement. Mais maintenant, j'ai remarqué quelque chose d'étrange:

$ git config push.default tracking
$ git push
fatal: The current branch master is not tracking anything.

WTF? Je pensais que si vous cloniez un référentiel, le master était automatiquement suivi. Quoi qu'il en soit, mes vraies questions sont

  1. Comment suis-je censé créer un clone pour que les branches soient suivies?
  2. Quelles sont les conséquences (autres qu’actuelles) de ne pas avoir un suivi?
  3. Comment puis-je corriger la situation actuelle, afin que ma succursale puisse suivre la télécommande?

MODIFIER Mon référentiel local agissait étrangement d'autres manières; plus particulièrement: je ne pouvais pas créer de branches distantes. Je l'ai mis de côté et fait un nouveau clone, et il agit étrangement de façons nouvelles.

Premier, master est le suivi (ouais). Deuxièmement, j'ai pu créer une branche distante, mais c'est étrange.

Ratatouille $ git push origin origin:refs/heads/premium
Total 0 (delta 0), reused 0 (delta 0)
To git@github.com:gamecrush/Ratatouille.git
* [new branch]      origin/HEAD -> premium
Ratatouille $ git branch -r
origin/HEAD -> origin/master
origin/master
origin/premium

Bien sûr, Ratatouille est le nom du dépôt à distance. L'étrange point: qu'est-ce que c'est -> là pour? Il semble être nouveau et il ne se présente pas pour l'ancien dépôt local ou d'autres clones de la télécommande.

Mais maintenant, le branchement et le suivi fonctionnent comme annoncé.

Réponses:

23 pour la réponse № 1

Quel est votre branch.autosetupmerge mis à? Par défaut, il devrait avoir configuré le suivi des branches lorsque vous avez cloné.

Essayez de régler l'amont pour la branche avec ceci pour que la branche suive la télécommande.

git branch --set-upstream master origin/master

6 pour la réponse № 2

Une alternative: pour paramétrer le maître pour suivre la télécommande, lors de votre premier push exécuter:

git push -u origin master

le -u fera la même chose que --set-upstream. Après, exécutez git branch -vv pour voir une liste des branches, y compris leurs branches de suivi.


2 pour la réponse № 3

Autre alternative:

git branch --set-upstream-to=origin/master