staged - git tag
Mover un repositorio git (5)
He encontrado que los submódulos no son relativos en git.
Por lo tanto, si desea mover un proyecto que contiene submódulos, debe editar el archivo .git
en el submódulo, así como el atributo "worktree" en el archivo de configuración del submódulo, que se almacena en el .git/modules/MODULENAME/config
archivo de .git/modules/MODULENAME/config
.
Esta pregunta puede ser tonta, pero me lo he estado preguntando por un tiempo. Se trata de repositorios git, pero supongo que es lo mismo para repositorios locales para otros DVCS ''.
Digamos que mi proyecto es así cuando comienza:
- Proyecto
- .git
- todas las otras carpetas en el proyecto
¿Así es como funcionaría cuando lo configuras bien?
Digamos que muevo la carpeta Proyecto a otro lugar, ¿tendría que cambiar algo? O es que todas las cosas del repositorio en la carpeta .git son relativas solo a la carpeta del Proyecto, ignorando todo el árbol de archivos sobre el Proyecto.
Estoy bastante seguro de que mover Proyecto no importaría, pero solo quería asegurarme.
Mostrar control remoto actual (este es un paso opcional del curso):
$ git remote show origin
* remote origin
URL: git@oldserver:project.git
Remote branch(es) merged with ''git pull'' while on branch master
master
Tracked remote branches
master
Lo que debemos hacer es eliminar el origen actual y agregar el nuevo:
$ git remote rm origin
$ git remote add origin git@newserver:project.git
$ git remote show origin
* remote origin
URL: git@newserver:project.git
Remote branch(es) merged with ''git pull'' while on branch master
master
error: refs/remotes/origin/HEAD points nowhere!
New remote branches (next fetch will store in remotes/origin)
master
No te preocupes por el error mostrado por el último comando. El primer tirón desde el origen lo arreglará:
$ git pull
From git@newserver:project.git
* [new branch] master -> origin/master
Already up-to-date.
$ git remote show origin
* remote origin
URL: git@newserver:project.git
Remote branch(es) merged with ''git pull'' while on branch master
master
Tracked remote branches
master
Todavía estoy fresco con Git, así que quizás haya una mejor manera de hacerlo, pero esto me funcionó.
No, no tendrías que cambiar nada más. Es decir
- asumiendo que no hay scripts configurados GIT_DIR, GIT_WORKTREE o GIT_INDEX directamente (improbable)
No tienes repositorios externos apuntando a esta copia.
Si lo hace, tendrá que volver a colocarlos utilizando
git remote set-url [--push] origin user@yourhost:/home/user/newlocation/Project
(origen debe ser el nombre del remoto; origen es el nombre predeterminado al clonar desde un repositorio remoto)
Puede mover el directorio git de una máquina a otra o, si lo desea, migrar la carpeta de su proyecto.
Toda la información sobre el origen se almacena en la carpeta ''.git'', que se crea cuando inicializa un repositorio git en un directorio de su sistema.
Procedimiento
- : Mueva la carpeta del proyecto a otra ubicación.
- : Si la carpeta del proyecto se está moviendo a una nueva máquina, cree el par de claves SSH correspondiente.
- : Dile a git quién estás utilizando: git config --global user.email "your_git_email_id @ youremail"
Sí, todo en .git
es relativo. Sin embargo, si ha agregado el repositorio como un remoto nombrado a otro repositorio, tendría que cambiar la URL remota en ese otro repositorio.