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
informatica:git [2015/02/03 15:27] – [Servidor git acceso claves ssh] javiinformatica:git [2022/01/06 20:19] (current) jose
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 35: Line 82:
  
   /usr/bin/git-shell   /usr/bin/git-shell
 +
 +Seguimos con la creacion del usuario "git":
  
 <code> <code>
Line 66: 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 =====
  
-==== Comandos sueltos ====+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
 +
 +  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 89: 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 108: 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> 
 + 
 +====== Borrar un fichero ====== 
 + 
  
-Resultat: el directori "/srv/www/test" hauria de tenir el contingut del repositori "/srv/git/test.git" expandit 
informatica/git.1422977232.txt.gz · Last modified: 2015/04/13 20:19 (external edit)