User Tools

Site Tools


informatica:git

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Last revisionBoth sides next revision
informatica:git [2015/02/03 15:30] – [Hooks] javiinformatica:git [2020/10/28 09:27] – [Comandos sueltos] javi
Line 1: Line 1:
-===== git =====+====== git ======
  
-==== Iniciar repositorio en remoto ====+===== Tags ===== 
 + 
 +1. Listar los commits de un repositorio 
 + 
 +<code> 
 +git log --pretty=oneline 
 +</code> 
 + 
 +2. Marcar con una etiqueta (en este ejemplo "v1.0") el commit deseado: 
 + 
 +<code> 
 +git tag -a v1.0 947c168ba5cc2c40dabe15b1a140e0a90f29f3c3 
 +</code> 
 + 
 +3. Subir las etiquetas al repositorio remoto: 
 + 
 +<code> 
 +git push origin v1.0 
 +</code> 
 + 
 +===== Iniciar repositorio en remoto =====
  
 Given a project in our local file system: Given a project in our local file system:
Line 19: Line 39:
 4. Move the directory to its final location using SSH 4. Move the directory to its final location using SSH
   scp -rv /tmp/manhattan_project.git user@git.example.com:/git/repositories/   scp -rv /tmp/manhattan_project.git user@git.example.com:/git/repositories/
 +  
 +===== Subir un cambio =====
 +
 +  git add <fichero>
 +  git commit -m "cambio realizado"
 +  git push
 +===== Añadir rama branch =====
 +  git pull
 +  git checkout -b test
 +  git push origin test
 +Listar ramas:
 +<code>
 +git branch -a
 +  master
 +* test
 +  remotes/origin/HEAD -> origin/master
 +  remotes/origin/master
 +  remotes/origin/test
 +</code>
 +Cambiar de rama:
 +<code>
 +git checkout master
 +A Dockerfile_ok
 +A Dockerfile_test
 +Switched to branch 'master'
 +Your branch is up to date with 'origin/master'.
 +</code>
  
-==== Servidor git acceso claves ssh ====+===== Servidor git acceso claves ssh =====
  
 http://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server http://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server
Line 68: Line 115:
 sudo su git sudo su git
 cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys cat /tmp/id_rsa.pub >> ~/.ssh/authorized_keys
-<code>+</code> 
 + 
 +===== Volver a un commit previo ===== 
 + 
 +Escenario: 
 + 
 +* Queremos volver a un commit previo 
 +* Queremos hacer un nuevo commit indicando "se ha vuelto al commit XXXX" 
 + 
 +1. Identificar el commit ID al que queremos volver: 
 + 
 +  git log 
 + 
 +En este ejemplo: 
 + 
 +  commit c501b1d989d780ab17412fc646b62bfe24aa24d5 (tag: v0.10.0) 
 + 
 +2. Volver a ese commit en la copia local: 
 + 
 +  git reset --hard c501b1d989d780ab17412fc646b62bfe24aa24d5 
 + 
 +3. **TODO**: clarificar qué hace exactamente este paso 
 + 
 +  git reset --soft HEAD@{1} 
 + 
 +4. Hacer un nuevo commit 
 + 
 +  git commit -m "Reverting to the state of the project at c501b1d989d780ab17412fc646b62bfe24aa24d5"
  
 +5. Subir los cambios al repositorio remoto
  
-==== Comandos sueltos ====+  git push
  
 +===== Comandos sueltos =====
  
 http://stackoverflow.com/questions/3258243/git-check-if-pull-needed http://stackoverflow.com/questions/3258243/git-check-if-pull-needed
Line 91: Line 167:
 <code> <code>
 git push --tags origin git push --tags origin
 +</code>
 +  * Descargar un tag determinado:
 +<code>
 +git clone -b 'v1.0' --single-branch --depth 1 https://github.com/Kedu-SCCL/redmine-automation
 </code> </code>
  
-==== Hooks ====+===== Hooks =====
  
-=== Desplegar el contenido de un repositorio tras recibir un commit ===+==== Desplegar el contenido de un repositorio tras recibir un commit ====
  
 1. Crear el hook 'post-receive' en el lado servidor: 1. Crear el hook 'post-receive' en el lado servidor:
Line 110: Line 190:
   chmod +x /srv/git/test.git/hooks/post-receive   chmod +x /srv/git/test.git/hooks/post-receive
      
-2. Fer un commit+2. Hacer un commit 
 + 
 +Resultado: el directorio "/srv/www/test" tendria que tener el contenido de del repositori "/srv/git/test.git" expandido 
 + 
 +==== Enviar un correo tras recibir un commit ==== 
 + 
 +1. Crear el hook 'post-receive' en el lado servidor: 
 + 
 +  sudo vim /srv/git/test.git/hooks/post-receive 
 +   
 +Con el siguiente contenido: 
 + 
 +<code> 
 +#!/bin/bash 
 + 
 +# Please adjust this setting 
 +RECIPIENTS="user1@example.com,user2@example.com" 
 +GIT="/usr/bin/git" 
 +SENDMAIL="/usr/sbin/sendmail" 
 +export USER_EMAIL=$($GIT log -1 --format=format:%ae HEAD) 
 +REPOSITORY=${PWD##*/}  
 +MAIL_CONTENT=`$GIT log --name-status HEAD^..HEAD` 
 +SUBJECT=$USER_EMAIL" updated git repo '"$REPOSITORY"'" 
 + 
 +$SENDMAIL "$RECIPIENTS" <<EOF 
 +subject:$SUBJECT 
 +from:$USER_EMAIL 
 +$MAIL_CONTENT 
 +EOF 
 +</code> 
 + 
 +  chmod +x /srv/git/test.git/hooks/post-receive 
 +   
 +2. Hacer un commit 
 + 
 +Resultado: el directorio "/srv/www/test" tendria que tener el contenido de del repositori "/srv/git/test.git" expandido 
 + 
 +==== GITHUB ==== 
 +Vamos a Settings "SSH and GPG keys" y añadimos la clave. 
 + 
 +Creamos el repositorio en GITHUB. Mejor no inicializar con README.md Allí pone las instrucciones: 
 +<code> 
 +git init . 
 +git add . 
 +git commit -m "primer commit" 
 +git remote add origin git@github.com:iwanttobefreak/docker-selenium.git 
 +git push -u origin master 
 +</code> 
 + 
  
-Resultat: el directori "/srv/www/test" hauria de tenir el contingut del repositori "/srv/git/test.git" expandit 
informatica/git.txt · Last modified: 2022/01/06 20:19 by jose