Come cambiare il telecomando che sta monitorando un ramo?

Il repository central doveva essere installato su un nuovo server, quindi ho creato un nuovo telecomando sul mio repository locale, e ho spinto a quello.

Ma ora quando faccio un git pull , sostiene che sono aggiornato. È sbagliato – mi sta parlando del vecchio ramo remoto, non di quello nuovo, che so per certo che ha nuovi commit da recuperare.

Come posso cambiare il mio ramo locale per monitorare un altro telecomando?

Posso vederlo nel file di configurazione git ma non voglio rovinare tutto.

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

Utilizzando git v1.8.0 o versioni successive:

git branch branch_name --set-upstream-to your_new_remote/branch_name

Oppure puoi usare l’ -u :

git branch branch_name -u your_new_remote/branch_name

Utilizzando git v1.7.12 o precedente:

git branch --set-upstream branch_name your_new_remote/branch_name

Per me la correzione era:

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

Poi:

 git push 

Se sei sano su di esso, la modifica del file di configurazione è abbastanza sicura. Se vuoi essere un po ‘più paranoico, puoi usare il comando porcellana per modificarlo:

 git config branch.master.remote newserver 

Naturalmente, se guardi la configurazione prima e dopo, vedrai che ha fatto esattamente quello che avresti fatto.

Ma nel tuo caso specifico, quello che farei è:

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

Cioè, se il nuovo server sarà il telecomando canonico, perché non chiamarlo origine come se lo avessi originariamente clonato?

Con un git aggiornato (2.5.5) il comando è il seguente:

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

Questo aggiornerà il ramo tracciato remoto per il tuo attuale ramo locale

Un’altra opzione per avere un grande controllo su ciò che sta accadendo è modificare a mano le tue configurazioni:

 git config --edit 

o la stenografia

 git config -e 

Quindi modifica il file a piacere, salva e le tue modifiche verranno applicate.

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

o

 git fetch git checkout -b local_branch_name origin/branch_name 

Potresti cancellare il tuo attuale ramo e fare:

 git branch --track local_branch remote_branch 

O cambiare il server remoto di modifica a quello corrente nella configurazione

Questo è il comando più semplice:

 git push --set-upstream   

Ad esempio, dato il comando git remote -v produce qualcosa come:

 origin ssh://[email protected]/~myself/projectr.git (fetch) origin ssh://[email protected]/~myself/projectr.git (push) team ssh://[email protected]/vbs/projectr.git (fetch) team ssh://[email protected]/vbs/projectr.git (push) 

Per cambiare invece il monitoraggio della squadra:

 git push --set-upstream team master 

Sulla base di ciò che ho capito dall’ultima documentazione di git, la sinossi è:

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

Questo uso sembra essere un po ‘diverso dalla risposta di urschrei, come nella sua sinossi è:

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

Immagino che abbiano cambiato di nuovo la documentazione?

Nell’ultima versione git come 2.7.4 ,

git checkout branch_name #branch nome che si desidera cambiare ramo di monitoraggio

git branch --set-upstream-to=upstream/tracking_branch_name #upstream – nome remoto