Le central
référentiel devait être configuré sur un nouveau serveur, j'ai donc créé une nouvelle télécommande sur mon référentiel local et j'ai poussé à cela.
Mais maintenant, quand je le fais git pull
, il prétend que je suis à jour. C'est faux - cela me parle de l' ancienne branche distante, pas de la nouvelle, que je sais pour un fait a de nouveaux engagements à récupérer.
Comment puis-je changer ma succursale locale pour suivre une autre télécommande?
Je peux voir cela dans le fichier de configuration git mais je ne veux pas gâcher les choses.
[branch "master"]
remote = oldserver
merge = refs/heads/master
Réponses:
Utilisation de git v1.8.0 ou version ultérieure:
git branch branch_name
--set-upstream-to
your_new_remote/branch_name
Ou vous pouvez utiliser le
-u
commutateur:git branch branch_name
-u
your_new_remote/branch_name
En utilisant git v1.7.12 ou antérieur:
git branch --set-upstream branch_name your_new_remote/branch_name
la source
git branch --unset-upstream
- puis cela fonctionne comme indiqué dans cette réponse (ou avec la suivantegit push -u / --set-upstream
).Pour moi, la solution était:
Alors:
la source
set-url
git push
Avec un git à jour (2.5.5), la commande est la suivante:
Cela mettra à jour la branche suivie à distance pour votre branche locale actuelle
la source
git branch --set-upstream-to=origin/develop
soulevé l'erreur:error: the requested upstream branch 'origin/develop' does not exist
. Auparavant, j'ai renommé une branche distante à développer.git fetch --all
peut-être?Une autre option pour avoir beaucoup de contrôle sur ce qui se passe est d'éditer vos configurations à la main:
ou la sténographie
Modifiez ensuite le fichier à volonté, enregistrez et vos modifications seront appliquées.
la source
Si vous êtes sain d'esprit, la modification du fichier de configuration est suffisamment sûre. Si vous voulez être un peu plus paranoïaque, vous pouvez utiliser la commande porcelaine pour le modifier:
Bien sûr, si vous regardez la configuration avant et après, vous verrez qu'elle a fait exactement ce que vous alliez faire.
Mais dans votre cas individuel, ce que je ferais, c'est:
Autrement dit, si le nouveau serveur doit être la télécommande canonique, pourquoi ne pas l'appeler origine comme si vous l'aviez cloné à l'origine?
la source
remote rename
ne ferait pas ce qui est demandé car il change le nom de la télécommande à la fois dans les[remote]
configurations et dans les[branch]
configurations. Donc, ce que l'on doit faire dans ce cas est d'éditer le fichier de configuration et de faire ce que vous dites (renommer les télécommandes) juste au niveau des[remote]
lignes de configuration.ou
la source
git fetch
. J'avais créé une nouvelle branche dans bitbucket et je voulais y passer. git ne connaît pas les changements à distance, donc je devais le fairegit fetch
avantgit checkout feature/new-feature-branch
. J'espère que ceci aide quelqu'un d'autre.C'est la commande la plus simple:
Par exemple, étant donné que la commande
git remote -v
produit quelque chose comme:Pour passer au suivi de l'équipe à la place:
la source
Vous pouvez soit supprimer votre branche actuelle et faire:
Ou changez le changement de serveur distant en serveur actuel dans la configuration
la source
git checkout --track -b local_branch_name origin/branch_name
D'après ce que je comprends de la dernière documentation git , le synopsis est:
Cet usage semble être un peu différent de la réponse d'Urschrei, car dans son synopsis:
Je suppose qu'ils ont encore changé la documentation?
la source
Dans la dernière version de git comme 2.7.4 ,
git checkout branch_name
# nom de la branche que vous souhaitez modifier la branche de suivigit branch --set-upstream-to=upstream/tracking_branch_name
#upstream - nom distantla source
J'ai trouvé le post de @critikaster utile, sauf que j'ai dû exécuter ces commandes avec GIT 2.21:
la source
la façon la plus simple est de simplement pousser vers la nouvelle branche:
la source