Install locally[+] General
Despúes de ingresar con su cuenta a http://gfif.udea.edu.co:3000
(Para proyectos en github o otro repositorio siga las instrucciones del sitio y pase directamente al item "Ciclo de trabajo corto")
- Ingrese las claves ssh de acuerdo a estas instrucciones
- Para ello ejecute en la terminal de línea de comandos de su equipo el comando (Pulsando la tecla <Enter> en todas las preguntas):
cd ~/.ssh
ssh-keygen -t rsa
cat id_rsa.pub
- Copie y pegue en el campo correspondiente de acuerdo a estas instrucciones
- siga el link de algún proyecto, por ejemplo "msc10"
- En la pestaña 'Show' copie el url de la caja de "SSH-HTTP"
- Cree una copia local del repositorio
git clone git@gfif.udea.edu.co:msc10.git
- Para copiar todas las ramas: Liste primero las ramas ocultas y continue con las instrucciones para copiar ranas específicas. En particular, para un rama llamada experimental
git checkout -b experimental origin/experimental crea una copia local de la rama y hace el checkout a dicha rama.
- Si va a crear un nuevo proyecto, por ejemplo msc11, siga las demás instrucciones de la página para hacer el primer commit al repositorio DENTRO DEL DIRECTORIO (carpeta) que va a subir al repositorio:
git init
git add .
git commit -m "initial import"
git remote add origin git@gfif.udea.edu.co:msc11.git
git push origin master Para usar git (sudo apt-get install git-core) se recomienda mirar los tutoriales disponibles en internet, por ejemplo este. Algunos comandos útiles:
- Para enviar un cambio a uno o más archivos
git commit -a
git push origin master donde el último comando envía los cambios al servidor especificado en .git/config
- Para añadir un nuevo archivo al repositorio creado
git add nuevo_archivo.py
git commit -m 'nuevo archivo'
git push origin master
- Para actualizar en su copia local del repositorio los cambios hechos por otros al respositorio principal, use
- Para administrar localmente su repositorio desde un entorno gráfico puede usar (sudo apt-get install qgit):
- Ciclo de trabajo corto:
#0. Bajarse el repositorio por primera vez desde el server:
git clone git:__server-info___
#O crear un repositiorio nuevo con '0git init' and 'git add' .
#0. cambiarse al directorio del repositorio creado:
cd newrepo
#1. modificar los archivos necesarios
#1.1 Añanadir los archivos necesarios
git add new_file
#1.2 Guardar los cambios y regresar al último commit
git stash
#1.3 Obtener los últimos cambios del repositorio
git pull origin master
#1.4 Implementar sus cambios en la última versión
git stash apply
#2. Registrar localmente los cambios:
git commit -a -m"mensaje"
#3. subir los cambios de nuevo al server:
git push origin master
#Tiempo después....
#Traer los cambios del server
git pull
#verficar cambios en el server
git log
#repetir los pasos 1.-3.
En lugar de los pasos 1.2 a 2: Se puede usar git pull --rebasegit commit -am 'My changes' // While i am working on my machine
// <-- My colleague did a "git push" here
git pull --rebase // So before I can push, i need to rebase
// Another syntax: git pull --rebase origin my_branch
git push // Now my changes are on top
- Configurar un repositorio privado
private $ git clone --bare /home/user/yourepo/.git /opt/git/yourrepo.git
$ chmod g+w /opt/git/yourrepo.git
$ chown -R user:gitlocal /opt/git/yourrepo.git
#To interact with the remote repository (only from the original respository):
$ git remote add origin gfif.udea.edu.co:/opt/git/yourrepo.git
#From another server or directory:
$ git clone gfif.udea.edu.co:/opt/git/yourrepo.git
#From a local dir
$ git clone opt/git/yourrepo.git
#Clone one specific branch
$ git clone -b branch_name opt/git/yourrepo.git
# make changes as before, and git push like before.
- Ciclo de trabajo "profesional". Asumiendo que ya se tiene el repositorio local clonado
#1. Listar las ramas existentes:
git branch -a
#2. cree su rama de trabajo para no estar tocando la rama "main":
git branch bname
#2. Cambiarse a la rama bname:
git ckeckout bname
#3.1 muestra en que rama está:
git status
#3.2 Sincronize con la rama master:
git merge master
#4. Implementa los cambios localmente:
git commit -a -m"mensaje"
#5. Envía los cambios al server:
git push origin bname
#5.1 Repita 4., 5. las veces que necesite
#6. Actualización de la rama principal
#6.1 informe de actualización desde el server:
git remote update
#6.2 aplique actualización desde el server y de ser necesario:
# arregle los conflictos con la rama 'bname'
git pull origin master
#6.3 Cambie al branch principal
git checkout master
#6.3 Aplique los cambios al master localmente:
git merge bname
#6.4 Aplique el merge al server:
git push origin master
#7. Espere cambios por otros usuarios
#7.1 Obtenga los cambios de otros usuarios:
git pull
#7.2 Repita los pasos 2. a 7. las veces que se requiera.
#8. Resolver conflictos
#8.1 Ver lista de commits:
git log
#8.2 Devolverse a un commit (WARNING: data lost):
git reset --hard #log
#9. Borrar la rama:
git branch -d bname
Specific git tricks[+]
Git ignore files to specific projects[+]Clone specific branch[+]
git clone -b <branch> <remote_repo>
Get an specific revision of a file[+]
- To get revision (e.g
9fgvx... ) of fileold.tex from a Git repository use: $ git show 9fgvx:./file.tex > fileold.tex
Compare two revisions of a file[+]
- To compare two revision (e.g
fff68.. and a0d4d... ) from a Git repository use: $ git difftool fff68 a0d4d file
[+]Stashing[+]Git-clone into existing directory[+]
- Go to the desired directory and use:
$ git init
$ git clone --bare web.repository.url:example.git
- edit the ".git/config" file
and add at the end the following: [remote "origin"]
url = web.repository.url:example.git
fetch = +refs/heads/*:refs/remotes/origin/*
Remove last commit from remote git repository[+]How do you merge selective files with git-merge?[+]Remove a remote branch[+]
git push origin :the_remote_branch
How can I completely remove a file from a git repository?[+] GitHub[+] |