ver tag repositorio remota rama origin modificados example eliminar crear cambiar archivos git working-directory git-bare

git - tag - Obtener una copia de trabajo de un repositorio simple



git push tag (6)

Así es como funciona:

$ git init --separate-git-dir /path/to/existing-bare-repository /path/to/workdir $ cd /path/to/workdir $ git checkout .

Voilà!

Para información: git init informará: Reinitialized existing Git repository in /path/to/existing-bare-repository . Pero ten confianza. man git-init dice: ejecutar git init en un repositorio existente es seguro. No sobrescribirá las cosas que ya están allí.

La magia es que solo git init no hace que sus archivos aparezcan en el directorio de trabajo. Tienes que retirar el directorio raíz.

Tengo un servidor en el que tengo un repositorio simple para empujar. Sin embargo, mi servidor necesita tener una copia de trabajo de la rama maestra.

¿Cómo obtengo una copia de trabajo y solo de un repositorio simple?


Estaba buscando el enfoque del "árbol de trabajo separado" (como se ve here ):

git init --bare git config core.bare false git config core.worktree /somewhere/else/ git checkout -f


Este es un riff de las otras 2 respuestas, pero llena el vacío para mi caso de uso: funciona para actualizar el repositorio desde el origen y verificar las sucursales y cualquier operación de git porque terminas con un repositorio de git completo normal.

git clone /path/to/bare/repo /new/path/to/full/repo cd /new/path/to/full/repo git remote set-url origin [email protected]:swift/swift.git

Después de ejecutar estas 3 líneas de código, puede git pull y git branch y git checkout some_branch y así sucesivamente porque ahora tiene un repositorio git completo normal conectado a su repositorio remoto.



Simplemente puede clonar el repositorio a otro directorio en la misma máquina:

git clone /bare/repo/dir.git

El directorio actual se convertirá en un clon no desnudo de su repositorio, y obtendrá una comprobación de la rama master automáticamente. Luego use los comandos habituales como git pull para actualizarlo según sea necesario.

Como beneficio adicional, esta operación es muy eficiente: si especifica un directorio local para git clone , git intentará compartir objetos entre esos dos repositorios utilizando enlaces duros.


Un repositorio simple es solo el directorio .git de un directorio de trabajo, y una entrada en el archivo de configuración local. Lo que hice para convertir un repositorio simple en uno completo es:

  • Cree un nuevo subdirectorio .git y mueva todos los archivos desde el repositorio en él
  • Edite el archivo .git/config para cambiar bare = true a bare = false
  • Echa un vistazo a la rama que desea. Esto extrae todos los archivos del repositorio en el directorio de trabajo.

Puede establecer el atributo Oculto en el directorio .git en Windows, pero no en los archivos dentro del directorio.