Question Comment changer la télécommande d'une branche est le suivi?


le central Le référentiel devait être installé sur un nouveau serveur, alors j'ai créé une nouvelle télécommande sur mon repo local et j'ai poussé à cela.

Mais maintenant, quand je le fais git pull, il prétend que je suis à jour. C'est faux, ça me parle de la vieux branche distante, pas la nouvelle, que je sais pour un fait a de nouveaux engagements à chercher.

Comment changer ma branche locale pour suivre une autre télécommande?

Je peux le voir dans le fichier de configuration git mais je ne veux pas gâcher les choses.

[branch "master"]
    remote = oldserver
    merge = refs/heads/master

443
2018-02-02 18:20


origine


Réponses:


En utilisant git v1.8.0 ou plus tard:

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 plus tôt:

git branch --set-upstream branch_name your_new_remote/branch_name


723
2018-02-02 19:59



Pour moi, le correctif était:

git remote set-url origin https://some_url/some_repo

Alors:

git push

62
2017-09-12 13:02



Si vous êtes sain d'esprit, éditez le fichier de configuration en toute sécurité. Si vous voulez être un peu plus paranoïaque, vous pouvez utiliser la commande porcelaine pour la modifier:

git config branch.master.remote newserver

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 particulier, ce que je ferais est:

git remote rename origin old-origin
git remote rename new-origin origin

Autrement dit, si le nouveau serveur va être la télécommande canonique, pourquoi ne pas l'appeler origine comme si vous en aviez cloné à l'origine?


17
2018-02-02 18:27



Avec un git (2.5.5) à jour, la commande est la suivante:

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

Cela mettra à jour la branche distante suivie pour votre succursale locale actuelle


17
2017-07-04 13:32



Une autre option pour avoir beaucoup de contrôle sur ce qui se passe est d'éditer vos configurations à la main:

git config --edit

ou la sténographie

git config -e

Ensuite, éditez le fichier à volonté, sauvegardez et vos modifications seront appliquées.


14
2017-10-10 15:01



git fetch origin
git checkout --track -b local_branch_name origin/branch_name

ou

git fetch
git checkout -b local_branch_name origin/branch_name

5
2018-03-24 13:12



Vous pouvez soit supprimer votre branche actuelle et faire:

git branch --track local_branch remote_branch

Ou changer le serveur distant de changement à l'actuel dans la config


4
2018-02-02 18:29



Basé sur ce que je comprends du dernier git Documentation, le synopsis est:

git branch -u upstream-branch local-branch
git branch --set-upstream-to=upstream-branch local-branch

Cet usage semble être un peu différent de la réponse d'urschrei, car dans son synopsis:

git branch local-branch -u upstream-branch 
git branch local-branch --set-upstream-to=upstream-branch 

Je suppose qu'ils ont encore changé la documentation?


1
2017-07-21 14:43



C'est la commande la plus simple:

git push --set-upstream <new-origin> <branch-to-track>

Par exemple, étant donné la commande git remote -v produit quelque chose comme:

origin  ssh://git@bitbucket.some.corp/~myself/projectr.git (fetch)
origin  ssh://git@bitbucket.some.corp/~myself/projectr.git (push)
team    ssh://git@bitbucket.some.corp/vbs/projectr.git (fetch)
team    ssh://git@bitbucket.some.corp/vbs/projectr.git (push)

Pour passer à suivre l'équipe à la place:

git push --set-upstream team master

1
2018-01-26 15:53