entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Git: No encuentro mis archivos

Saludos,

Tengo un problema al usar git en un repositorio privado que creé en un VPS.

Creo el repositorio desde el lado del servidor de la siguiente forma:

git init --bare develop.git
cd develop.git

Y dentro de ese directorio encuentro ya varios archivos y directorios: branches config description HEAD hooks info objects refs

Ahora desde el lado del cliente hago esto:

mkdir develop
cd develop
git init && git remote add origin [email protected]:develop.git

y tengo esto de respuesta:

Initialized empty Git repository in /home/miuser/develop/.git/

Ahora hago esto:

touch README
git add .
git commit -m "Test"
git push origin master

Me pide la contraseña del usuario git de mi servidor, la coloco, y comienza el proceso:

Counting objects: 3, done. Writing objects: 100% (3/3), 199 bytes | 0
bytes/s, done. Total 3 (delta 0), reused 0 (delta 0) To
[email protected]:develop.git * [new branch] master ->
master

Bien, ¿no se supone que los archivos (README) debería estar en el directorio "develop" en el servidor? por que cuando reviso no hay nada, solo los archivos por default cuando hice el git --bare. El único cambio es el el directorio "objects" que carga otros directorios dentro de nombres "54" "e3" "e6" "info" "pack" y adentro solo hay un archivo con un nombre correspondiente a un hash md5.

Hago un "ls -la" para ver si hay algún directorio oculto o si hay una actualización en algún otro directorio, pero no. El único cambio es en "objects" pero no son los archivos del commit.

Cuando hago un git log desde el servidor:

commit e310ad38746fd54972915bab5afe5e7179363a07 Author: basterds
[email protected] Date: Mon Jun 1 17:19:30 2015 -0600

Test

Y cuando hago un git log desde el cliente:

commit e310ad38746fd54972915bab5afe5e7179363a07 Author: basterds
[email protected] Date: Mon Jun 1 17:19:30 2015 -0600

Test

Cundo hago git status en el servidor:

fatal: This operation must be run in a work tree

Y en el cliente:

On branch master nothing to commit, working directory clean

git show en el servidor:

commit e310ad38746fd54972915bab5afe5e7179363a07 Author: ba [email protected] Date: Mon Jun 1 17:19:30 2015 -0600

Test

diff --git a/README b/README new file mode 100644 index
0000000..e69de29

Y en el cliente:

commit e310ad38746fd54972915bab5afe5e7179363a07 Author: ba
[email protected] Date: Mon Jun 1 17:19:30 2015 -0600

Test

diff --git a/README b/README new file mode 100644 index
0000000..e69de29

git branch -va en el servidor:

  • master e310ad3 Test

En el cliente:

  • master e310ad3 Test
    remotes/origin/master e310ad3 Test

¿Alguien me puede ayudar? Gracias por adelantado.

1 Respuesta

2votos

carlossevi Puntos63580

Puedes ver en la documentación de git-init la opción bare, que es la que estás utilizando para crear el repositorio del servidor. No sé si hay una traducción oficial para Git, pero bare significa vacío, básico, sencillo... ¿Qué es un repositorio "bare"? Tiene dos características:

  1. No hay directorio de trabajo.
  2. No hay directorio .git. En su lugar, los ficheros que normalmente están en ese directorio se encuentran en el directorio principal (el que normalmente es el de trabajo).

Lo normal es utilizar este tipo de repositorios para compartir el repositorio, de tal manera que no es necesario un directorio de trabajo (y así se evita que pueda haber modificaciones). Desde ese repositorio se harán clone, push, pull... a repositorios que sí que sean de trabajo.

Ese es el motivo por el que la estructura de ficheros de tu repositorio no es la que esperas.

0voto

Stark comentado

Gracias carlossevi, en efecto estaba entendiendo mal todo, pensaba que el directorio de trabajo debería ser ahí mismo

Hice un clone desde otra parte del servidor y ahora sí que veo los archivos. Gracias!

0voto

carlossevi comentado

Te recomiendo que te leas si no lo has hecho ya el Libro de Git. Es una documentación muy completa, bien estructurada y completamente libre.

0voto

Stark comentado

Gracias! lo leeré.

Saludos

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta