Cambiar a un repository diferente en Git

Una situación en Git que todavía encuentro confusa es esta:

$ git clone https://github.com/dude1/project 

Vaya, esa no es realmente la versión correcta. Voy a cambiar:

 $ git remote add dude2 https://github.com/dude2/project $ git fetch dude2 $ git checkout dude2/master Note: checking out 'dude2/master'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example: git checkout -b new_branch_name HEAD is now at f3o845a... 

Hrm. Quiero que el master refiera a dude2 / master.

 $ git checkout -b master dude2/master fatal: A branch named 'master' already exists. 

A less que elimine todo el directory y empiece de nuevo, ¿cómo cambio limpiamente los repositorys?

En Git no se supone que debes comprometer trabajo en sucursales remotas (se supone que debes hacer tu trabajo en sucursales locales ), es por eso que te colocan en 'detached head' state cuando checkout dude2/master . Las sucursales remotas deben contener copys de confirmaciones provenientes de controles remotos, nunca se crean creadas localmente.

Como lo sugiere Jithill, la mejor manera de forzar un cambio de lo que significa master es

 git checkout -B master dude2/master 

El resultado debe include

 Branch master set up to track remote branch master from dude2. 

Indicando que su maestro ahora está rastreando los cambios de un maestro remoto diferente.

Pensando en esto, la respuesta obvia es:

Primero git checkout dude2/master como arriba. Entonces:

 $ git branch -d master warning: deleting branch 'master' that has been merged to 'refs/remotes/dude1/master', but not yet merged to HEAD. Deleted branch master (was f30845a). $ git checkout -b master dude2/master Branch master set up to track remote branch master from dude2. Switched to a new branch 'dude2' 

No tengo ni idea de lo que significa la advertencia cuando eliminas el maestro.