Herramientas de usuario

Herramientas del sitio


linux:sistemaoperativo:git

**¡Esta es una revisión vieja del documento!**

Uso de git

clonar separando código y .git en distintos directorios
$ git clone --separate-git-dir /tmp/1/unaprueba ssh://git-test.pm.rosario.gov.ar/datos/git/web.git --branch desarrollo

clonar trayendo el log solamente del último cambio

$ git clone --depth 1 ssh://git-test.pm.rosario.gov.ar/datos/git/web.git --branch desarrollo 

clonar como espejo para usar como bare local

$ git clone --mirror ssh://git-test.pm.rosario.gov.ar/datos/git/web.git 

actualizar repositiorio espejo desde el origin

$ cd repo && git fetch origin 

clonar contra https con certificado erroneo GIT_SSL_NO_VERIFY=true git clone https://gitlab.tecso.coop/tecso/siat-rosario.git git config http.sslVerify "false"

ver ramas remotas $ git branch -r

ver todas las ramas

$ git branch -a 

ver ramas locales

$ git branch 

comparar repositorio local con el origin

git remote show origin 

agregar archivos nuevos al área de trabajo para commit

git add . 

ver cambios que se grabarán en el próximo commit

git status 

commit con mensaje

git commit -a -m 'mensaje descriptivo' 

agregar archivo olvidado al último commit

git commit --amend 

ver historial de commits

git log --stat 

ver historial de commits abreviado

git log --pretty=oneline 

ver diferencias entre último commit y el anterior

git log -p -2 

ver árbol de versionados

git log --pretty=format:"%h %s" --graph 

volver a un commit anterior

git revert 0d1d7fc32 

anular últimos commits perdiendo cambios

git reset --hard 0d1d7fc32 

crear nueva rama (igual al commit actual)

git branch testing 

borrar rama local

git branch -d the_local_branch 

borrar rama remota git push origin :the_remote_branch

aplicar en master os cambios de una rama de test

git checkout master
git merge test 

limpiar entorno sucio por cambios no aplicados: 1-ver 2-aplicar

git clean -n 
git clean -f 

revertir un archivo a un estado varios commits anterior ver contenido del archivo en el commit

git show a4r9593432:path/to/file.txt 

revertir el archivo a la versión elegida

git reset a4r9593432 -- path/to/file.txt 

revisar las diferencias

git diff --cached path/to/file.txt 

aplicar el cambio

git commit 

ver diferencias en un archivo con el commit anterior

git diff HEAD^ -- /foo/bar/baz.txt 

ver diferencias entre version actual y 2 versiones anteriores de un archivo

git diff HEAD@{2} /foo/bar/baz.txt 

crear tag

git tag -a v1.4 -m "my version 1.4" 

crear tag desde commit

git tag -a v1.2 0b7434d86859cc7b8c3d5e1dddfed66ff742fcbc 

crear tag liviano (solo info del commit)

git tag v1.4 

Crear repositorio

mkdir debian7apache
cd debian7apache
git init

Cambiar la descripcion del proyecto

vim debian7apache/.git/description

Agregar archivos al directorio

git add .
git commit -n 'Carga de archivos iniciales'

Subir al repositorio compartido

git remote add origin pgrigio0@git-test.pm.rosario.gov.ar:/datos/git/svc/debian7apache.git
git push origin master

Actualizar cambios

chmod +x instalar.sh
git commit -a -m 'Agregar instalador ejecutable'
git push origin master

Crear repositorio compartido

Crear repositorio compartido en git-test con permisos para edición del grupo solamente

 mkdir /datos/git/svc/debian7tomcat.git
 chown git debian7tomcat.git
 cd debian7tomcat.git
 git init --bare --shared=group
 cd ...
 chown -R git debian7tomcat.git
 chmod o-x debian7tomcat.git

Cambiar la descripcion del proyecto

vim debian7tomcat/description

Subir el proyecto al servidor compartido

git push pgrigio0@git-test.pm.rosario.gov.ar:/datos/git/svc/debian7tomcat.git master:master 

Agregar origen en repositorio local para después seguir actulizando cambios

git remote add origin pgrigio0@git-test.pm.rosario.gov.ar:/datos/git/svc/debian7tomcat.git 

Agregar envío de correo cuando hay nuevo commit

cd /datos/git/svc/debian7tomcat.git
cp /usr/share/git-core/contrib/hooks/post-receive-email hooks/post-receive
chown git.servicios hooks/post-receive
chmod +x hooks/post-receive
git config hooks.mailinglist "pgrigio0@rosario.gov.ar,pgrigioni@rosario.gov.ar"
git config hooks.emailmaxlines 500

Sin git-modifier hay que hacer esto además

git config hooks.emailprefix "[debian7tomcat] "
git config hooks.showrev "git show -C %s; echo"

Mensaje con servidor y repositorio $ git config hooks.showrev "t=%s; printf 'http://your_repository_IP/gitrepo/?p=my_git_project;a=commitdiff;h=%%s' \$t; echo;echo; git show -C \$t; echo"

Agregar repositorio a demonio git público

Agregar repositorio para poder ser consumido de forma pública mediante protocolo git touch /datos/git/svc/debian7tomcat.git/git-daemon-export-ok

Agregar repositorio a servidor web

Agregar repositorio para ser consultado de forma anónima por protocolo http y mediante la interfaz gitweb

cd /var/www/gitweb/
ln -s /datos/git/svc/debian7tomcat.git .

Procedimiento para clonar repositorio y subir modificaciones

Para agregar cambios en un repositorio público el procedimiento es: 1) Traer la última versión del proyecto a modificar a mi pc 2) Aplicar los cambios a la versión local 3) Generar una nueva versión local 4) Publicar la nueva versión en el repositorio público

1) Clonar repositorio git clone ssh://usuario@git-test.pm.rosario.gov.ar/datos/git/svc/debian7base.git/ --branch master cd debian7base

o para actualizar la version local con el contenido del servidor

git pull origin master

2) Crear archivos nuevos

vim nuevo.txt 

Agregar archivos nuevos al indice git add .

Modificar archivos existentes vim README

3) Grabar los cambios git commit -a -m 'Mensaje descriptivo de los cambios'

4) Publicar los cambios en el repositorio compartido git push origin master

Interfaces para gestión de permisos

GITLAB - Es el de github - Soporta LDAP y grupos la versión paga - Se puede configurar autenticación LDAP en la versión libre pero hay que revisar si tiene manejo de permisos

GITOLITE - Se maneja con claves rsa - Se configura a través de un repositorio de git - Se puede integrar LDAP pero con una modificación a través de apache + usuario genérico

GITOSIS - Se maneja con claves rsa - Se configura a través de un repositorio de git - Complicado integrar LDAP

linux/sistemaoperativo/git.1549971700.txt.gz · Última modificación: 2019/02/12 11:41 por grillo