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.1549284653.txt.gz · Última modificación: 2019/02/04 12:50 por grillo