Reglamento general de los foros   •   FAQ   •   Buscar en el foro •  Registrarse | Iniciar sesión 



Foros Linux » Administración del sistema » Redes y Servidores


Nuevo tema Responder al tema
 [ 7 mensajes ] 
Patrocinadores

Autor
Buscar:
Mensaje

Desconectado
Forista Medio
Forista Medio
Avatar de Usuario

Registrado: Mié Abr 28, 2004 11:00 pm
Mensajes: 358

Nota Publicado: Vie Ene 07, 2011 8:59 pm 
Arriba  
Buenas...

Me he instalado localmente el GIT para mantener bien organizados mis proyectos, esto con la finalidad de subir mis cambios a mi Servidor Dedicado (tambien he instalado GIT igual que en mi Equipo Local).

En si el proceso de instalacion es sencillo, simplemente se compilan las fuentes y ya esta funcionando...

Para tener mejor organizado mi equi Local, he creado un directorio (mas NO un usuario) en /home/, llamada: git (/home/git), dentro pongo mis proyectos, asi:

Código:
shell# cd /home/git/
shell# mkdir proyecto1.git
shell# cd proyecto1.git/
shell# git init
shell# echo "prueba" > dato.txt
shell# git add .


OJO: todo lo realizo como ROOT.

Tambien configure mi Apache para visualizar el git: http://localhost/git...

MI PROBLEMA es que no se como puedo por ejemplo, con mi cuenta de usuario normal, una vez que he creado mis repositorios por ejemplo en: /home/miusuario/Documentos/git/proyectA.git, como puedo subirlo a mi Equipo Local ?...

Intente asi:

Código:
# OJO: soy usuario comun aqui, NO soy root

shell$ cd /home/miusuario/Documentos/git/proyectoA.git/

shell$ git push http://localhost/git  # sale error
fatal: http://localhost/git/info/refs not found: did you run git update-server-info on the server?

shell$ git push git://localhost/git
fatal: The remote end hung up unexpectedly


Alguien que me oriente !!...

Saludos !

 Perfil Email WWW  

Desconectado
Forista Medio
Forista Medio
Avatar de Usuario

Registrado: Dom Sep 05, 2010 8:30 pm
Mensajes: 398

Nota Publicado: Sab Ene 08, 2011 3:41 am 
Arriba  
¿Pero para qué hacer un push a tu mismo servidor local?

Yo simplemente copio y pego a mi directorio de git, luego el commit y al final el "push origin master", hasta tengo un alias para hacer todo en uno =P

No entendí realmente la duda, espero tú segundo post =P

_________________
scrotwm@FreeBSD
pekwm@Sabayon
::vim::zsh::urxvtd|blog::dotfiles::last.fm

 Perfil Email  

Desconectado
Forista Mayor
Forista Mayor

Registrado: Vie Ago 24, 2007 11:00 pm
Mensajes: 794
Ubicación: Galicia - España

Nota Publicado: Sab Ene 08, 2011 6:16 am 
Arriba  
Yo tampoco lo he entendido.

Git es un sistema de control de versiones distribuído. En teoría todos los nodos tienen el mismo "pòder". No necesitas un servidor externo, si sólo vas a trabajar tu en el proyecto.

_________________
Mi blog: Conocimiento Abierto

 Perfil WWW  

Desconectado
Forista Medio
Forista Medio
Avatar de Usuario

Registrado: Mié Abr 28, 2004 11:00 pm
Mensajes: 358

Nota Publicado: Lun Ene 10, 2011 9:05 pm 
Arriba  
ramonoid escribió:
¿Pero para qué hacer un push a tu mismo servidor local?

Yo simplemente copio y pego a mi directorio de git, luego el commit y al final el "push origin master", hasta tengo un alias para hacer todo en uno =P

No entendí realmente la duda, espero tú segundo post =P


Hacer push a mi mismo servidor Local, es simplemente hacer PRUEBAS porque la idea es subir de mi servidor local a mi servidor dedicado en internet.

Vaya, mi solucion asi rapida es:
1- Abro el FTP.
2- Subo TODOS los archivos a mi directorio en el Servidor Dedicado (/home/git/).
3- Me conecto al Servidor Dedicado (via SSH) y hago: git add. y git commit -a "dato".

El problema es que, y que pasa cuando el codigo es muy grande ?, digo... Que existan librerias de hasta 10MB ?, se estaria re-subiendo los 10MB cada vez que copiamos todo el codigo :S, asi que, me gustaria mas hacer algun push y que el mismo GIT lo suba a mi servidor dedicado.

1- Trabajo en mi Git Local.
2- Lo subo al Git en linea (mi servidor dedicado).

Saludos !

Editado -- Mar Ene 11, 2011 12:53 pm --

Creo que ya lo voy logrando, pero algo falla :S, miren les relato desde el principio:

1- Me conecto al Servidor Dedicado y hago:
Código:
shell# ssh -l miusuario miservidor.com
shell$ su
Password:

shell# cd /home/git/
shell# mkdir prueba
shell# cd prueba/
shell# git init
shell# echo "estoy en servidor dedicado" > dedicado.txt
shell# git add .
shell# git commit -am "Srv Dedicado"
shell# exit
shell# exit


2- En mi servidor Local
Código:
shell$ su
Password:

shell# cd /home/git/
shell# mkdir prueba
shell# cd prueba/
shell# git init


3- Ahora la sincronicazion de Repos
Código:
shell# git pull diabliyo@git.miservidor.com:/home/git/data
diabliyo@git.miservidor.com's password:
From git.miservidor.com:/home/git/data
* branch            HEAD       -> FETCH_HEAD
Already up-to-date.


4- Creacion del Documento en Local
Código:
# en Servidor Local, ya esta el archivo "dedicado.txt"

shell# echo "estoy en el local" > local.txt
shell# git add .
shell# git commit -am "Srv Local"

# subiendo novedades
shell# git push diabliyo@git.miservidor.com:/home/git/data
diabliyo@git.crver.net's password:
Counting objects: 6, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (5/5), 479 bytes, done.
Total 5 (delta 0), reused 0 (delta 0)
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To diabliyo@git.miservidor.com:/home/git/data
! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to 'diabliyo@git.miservidor.com:/home/git/data'


Y finalmente, en mi Servidor Local, tengo el archivo dedicado.txt, pero en el Servidor Dedicado las cosas estan intactas, vaya, no esta subido el archivo local.txt.

Alguna idea ?

 Perfil Email WWW  

Desconectado
Forista Mayor
Forista Mayor

Registrado: Vie Ago 24, 2007 11:00 pm
Mensajes: 794
Ubicación: Galicia - España

Nota Publicado: Mié Ene 12, 2011 6:18 am 
Arriba  
Te pego de esta página lo que hay que hacer para configurar git.

En remoto:
Código:
$ ssh myserver.com
Welcome to myserver.com!
$ mkdir /var/git/myapp.git && cd /var/git/myapp.git
$ git --bare init
Initialized empty Git repository in /var/git/myapp.git
$ exit


En local:
Código:
$ cd ~/Sites/myapp
$ git remote add origin ssh://myserver.com/var/git/myapp.git
$ git push origin master


A partir de aquí ya podrías trabajar con git en local de forma normal. Escribes código en local, haces los commits que te interesen, mergeas ramas, ... y cuando quieras lo subes a remoto con git push o te lo bajas con git pull --rebase

Puedes echarle un vistazo también a esto que escribí en mi blog.

_________________
Mi blog: Conocimiento Abierto

 Perfil WWW  

Desconectado
Forista Medio
Forista Medio
Avatar de Usuario

Registrado: Mié Abr 28, 2004 11:00 pm
Mensajes: 358

Nota Publicado: Jue Ene 13, 2011 5:32 pm 
Arriba  
Pues salio pero amigo :(...

Si ejecuto git --bare init en el dedicado, noto que toda la informacion que se crea en .git (directorio oculto), se pone directamente en la raiz del proyecto, por lo cual, cuando estoy en mi Equipo Local, me sale este error:

Código:
shell# cd /home/git/mi_proyecto/
shell# git push miuser@miservidor.com:/home/git/mi_proyecto/
fatal: Couldn't find remote ref HEAD
fatal: The remote end hung up unexpectedly


Anteriormente salia otro error (ver post arriba), pero ahora si no se que hacer con esto :S, y ademas, si hago pull simplemente no encuentra el HEAd tampoco.

Editado -- Vie Ene 14, 2011 9:32 am --

Ya pude subir mis actualizaciones :D, pero.... no se va al branch master.

Quizas el problema es que el branch master no tiene permisos para que los remotos lo actualicen...

Pero mi solucion de momento fue entrar al servidor dedicado, crear un branch X y dejarlo existente para que cuando un Remoto suba actualizaciones, utilice ese branch, el unico [/b]problema[/b] con esta modalidad, es que el master nunca se actualiza, es necesario entrar al Servidor Dedicado (por SSH) y actaulizarlo (git merge X).

El proceso fue:

Servidor Dedicado
Código:
shell# cd /home/git/
shell# mkdir proyecto  // creamos proyecto
shell# git init  //inicializamos SIN utilizar "--bare"
shell# git branch  // vemos los branch, solo tenemos a master
* master

// creamos el branch "dev" que usare para actualizar
shell# git branch dev
shell# git branch
* master
dev


En el Servidor Local (mi equipo)
Código:
shell# /home/miusuario/codigos/
shell# mkdir proyecto
shell# cd proyecto
shell# git init
shell# echo "prueba de texto" > hola.txt
shell# git add .
shell# git commit -am "estoy en Srv Local"

// subiendo al repositorio Servidor Dedicado
shell# git push diabliyo@git.miservidor.com:/home/git/proyecto dev


Ahora ya tenemos todo UP en el Servidor Dedicado, el problema es que solo se refleja cuando entras al branch dev, y para que master lo refleje, es necesario entrar y emerger.

Código:
// estoy en servidor Dedicado
shell# cd /home/git/proyecto
shell# git branch
* master
dev

// estoy hara que el branch "dev" actualize al branch "master"
shell# git merge dev


Y listo....

Agradeceria quien me dijera como hacerle para poder subir las cosas directo al branch master, porque si lo intento, me dice este error:

Código:
Counting objects: 6, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (5/5), 479 bytes, done.
Total 5 (delta 0), reused 0 (delta 0)
remote: error: refusing to update checked out branch: refs/heads/master
remote: error: By default, updating the current branch in a non-bare repository
remote: error: is denied, because it will make the index and work tree inconsistent
remote: error: with what you pushed, and will require 'git reset --hard' to match
remote: error: the work tree to HEAD.
remote: error:
remote: error: You can set 'receive.denyCurrentBranch' configuration variable to
remote: error: 'ignore' or 'warn' in the remote repository to allow pushing into
remote: error: its current branch; however, this is not recommended unless you
remote: error: arranged to update its work tree to match what you pushed in some
remote: error: other way.
remote: error:
remote: error: To squelch this message and still keep the default behaviour, set
remote: error: 'receive.denyCurrentBranch' configuration variable to 'refuse'.
To diabliyo@git.miservidor.com:/home/git/data
! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to 'diabliyo@git.miservidor.com:/home/git/data'

 Perfil Email WWW  

Desconectado
Forista Mayor
Forista Mayor

Registrado: Vie Ago 24, 2007 11:00 pm
Mensajes: 794
Ubicación: Galicia - España

Nota Publicado: Sab Ene 15, 2011 4:44 am 
Arriba  
La parte del servidor local prueba a hacerla de este modo:
Código:
mkdir /tmp/el-repo-local
cd /tmp/el-repo-local

git init
echo "some text" > README
git add README
git commit -m "initial commit"

git remote add origin ssh://myserver.com/var/git/myapp.git
git push origin master


y a continuación en otro directorio distinto
Código:
git clone ssh://myserver.com/var/git/myapp.git
// do some hacking
git commit -m "hacking message"
git push

_________________
Mi blog: Conocimiento Abierto

 Perfil WWW  
Mostrar mensajes previos:  Ordenar por  
 [ 7 mensajes ] 
Nuevo tema Responder al tema

Saltar a:  


¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

No puede abrir nuevos temas en este Foro
No puede responder a temas en este Foro
No puede editar sus mensajes en este Foro
No puede borrar sus mensajes en este Foro
No puede enviar adjuntos en este Foro

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group :: Style based on FI Subice by phpBBservice.nl :: Todos los horarios son UTC - 6 horas
Traducción al español por Huan Manwë
phpBB SEO