¿Se puede configurar un repositorio de Git en un clon local del mismo repositorio?

¿Se puede configurar un repositorio de Git en un clon local del mismo repositorio?

Tengo un repositorio en /home/user/reponame(Repositorio 1). Luego cloné este repositorio en /tmp/reponame(Repositorio 2). ¿Es posible cambiar el repositorio ascendente del Repo 1 al Repo 2?

Otras preguntas que he visto sugieren ramas, pero no son lo que busco aquí. Cuando lo hago git checkout -b test --track /tmp/reponame/master, aparece el error /tmp/reponame/master is outside repository.

Respuesta1

Git no utiliza el término "upstreams" para ninguna configuración de todo el repositorio. Solo las ramas individuales tienen un upstream en la terminología de Git, y solo se puede configurar en alguna otra rama, porque su propósito es servir como acceso directo/predeterminado para comandos como git merge <otherbranch>. (Su git checkoutcomando también se basa completamente en trabajar con ramas).

En cambio, probablemente estés buscando'remotos', que almacena las URL del repositorio. Cada nuevo clon almacena su URL de origen en un archivo remoto llamado origin. Entonces, si desea que el repositorio 1 pueda enviarse al repositorio 2, puede usar git remote addo git remote set-url(dependiendo de si ya existe o no un control remoto con ese nombre):

git remote add origin /tmp/reponame
git fetch origin

Alternativamente:

git config remote.origin.url /tmp/reponame
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch origin

Esto suele ir seguido de una actualización de los flujos ascendentes por rama, para que git pulletc. funcione:

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

información relacionada