git (git-book)

info

metodología de trabajo en Git

áreas

estados en ficheros

estados de un fichero:

comandos

básicos

con más detalle

puede ser confuso saber que estás comparando dependiendo del estado del fichero (sin seguimiento - sin modificar - modificado - preparado)

con archivos

.gitignore

para hacer que ciertos archivos (o patrones de archivos) no se registren, se puede crear un fichero .gitignore

.gitignore
# ignora los archivos terminados en .a
*.a
 
# pero no lib.a, aun cuando había ignorado los archivos terminados en .a en la linea anterior
!lib.a
 
# ignora unicamente el archivo TODO de la raiz, no subdir/TODO
/TODO
 
# ignora todos los archivos del directorio build/
build/
 
# ignora doc/notes.txt, pero este no doc/server/arch.txt
doc/*.txt
 
# ignora todos los archivos .txt el directorio doc/
doc/**/*.txt

se puede crear un fichero para ignorar a nivel global (por la tesitura del equipo y los programas usados):

git config --global core.excludesFile ~/.gitignore

se puede ubicar en cualquier sitio, en este caso lo situan en el $HOME del usuario

restaurar

stage

git reset –hard: elimina todas las modificaciones del stage y working (menos untracked)

working area

git checkout – <file>: Elimina los cambios en el fichero del working copy
git checkout <folder>: Elimina los cambios en el directorio del working copy
git checkout .: Elimina los cambios en TODO el working copy

fichero untracked

git clean -f: Elimina los ficheros untracked
git clean -fd: Elimina los ficheros untracked de raiz y directorios
git clean -id: clean interactivo

con remotos

traer y combinar remotos

enviar a tus remotos

eliminar y renombrar remotos

Tags

reescribiendo la historia (rebase)

viajes en el tiempo

RESET

atención a estos comandos, podrías perderlo todo

log

alias

/via: https://git-scm.com/book/en/v2/Git-Basics-Git-Aliases

+info: https://github.com/GitAlias/gitalias

configuración

PTE

pendiente de colocar de una manera más legible
push repositorios remotos
repositorio centralizado
al hacer un clone se establece como remoto
git remote add origin <direccion o directorio> → origin se suele usar en github para el repositorio
git push origin master → enviamos a origin la master

actualizando repositorios remotos
git branch -all → muestra todas las ramas, incluidas las remotas
git pull origin master → descarga los cambios de origin a master
git pull --rebase → preserva tus cambios y que no sean machacados por el PULL
ramas
linea de desarrollo de commit uno detrás de otro
ramas: trabajar en características diferentes
git branch “caracteristica” → crea rama
git branch → muestra las ramas
git checkout “caracteristica” → moverte a la rama
git checkout -g “caracteristica” → crea la rama y nos movemos a ella
git branck -d “caracteristica” → elimina rama
fusión de ramas: 
git log --oneline --decorate
git checkout master
git merge “caracteristica”
bloqueo pesimista -> bloqueas el archivo
bloqueo optimista -> se supone que hay trabajo repartido, no debería haber conflicto.
si no se toca la misma línea, GIT puede llegar a resolver. si no, intervención manual

eclipse + bitbucket

/via: https://crunchify.com/how-to-configure-bitbucket-git-repository-in-you-eclipse/