estados de un fichero:
git init
git add .
git add -A
git status
git status -s // abreviado
git commit -m "Mensaje descriptivo"
git commit -a -m "Mensaje descriptivo"
git -c “user.name=matebcn” commit
git remote add origin <dirección repositorio Git>
git push -u origin master
git clone <dirección repositorio git>
puede ser confuso saber que estás comparando dependiendo del estado del fichero (sin seguimiento - sin modificar - modificado - preparado)
git diff
git diff --staged
git mv <archivo> <nuevo_nombre_archivo>
mv <path>/<archivo> <pah2>/<archivo> git rm <path>/<archivo> git add <path2>/<archivo>
rm <archivo> git rm <archivo>
git rm --cached <archivo>
para hacer que ciertos archivos (o patrones de archivos) no se registren, se puede crear un fichero .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
git reset
: elimina stage y lo pasa a workinggit reset <file>
git reset –hard
: elimina todas las modificaciones del stage y working (menos untracked)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 copygit clean -f
: Elimina los ficheros untrackedgit clean -fd
: Elimina los ficheros untracked de raiz y directoriosgit clean -id
: clean interactivogit remote #por defecto se le asigna ORIGIN al servidor clonado
-v
ofrece información de la URLgit remote add <nombre> <URL>
git fetch <nombre>
git pull
: trae una rama remota y la combina con la actualgit clone
: trae la rama remota maestragit push <nombre-remoto> <nombre-rama>
: enviar información a repositorio remotogit remote show <nombre-remoto>
git remote rename <nombre-original> <nuevo-nombre>
: cambia el nombre de referencia de un remotogit remote rm <remoto>
: eliminar un remotogit tag
: mostrar las etiquetas-l <patrón>
: patrón de filtradogit tag -a vX.x
: aplica el tag al HEAD ?-a
: etiqueta anotada-m
: mensaje de la etiqueta (obligatorio en etiquetas anotadas)git show <tag>
: información adicional de las etiquetas anotadasgit tag vX.x-lw
: etiqueta ligera (no usar ni -a
, -s
, -m
)git show <tag>
no se mostrará información adicionalgit tag -a vX.x <checksum>
: etiquetar a posteriori un commit, indicando los primeros caracteresgit push origin <etiqueta>
: las etiquetas no se envían a los servidores remotos, hay que especificarlo explicitamentegit push origin –tags
: envía varias etiquetas a la vezgit checkout -b <rama> <tag>
: crear una rama a partir de un taggit reset HEAD <fichero>
git checkout -- <fichero>
git checkout <codigo_commit>
git checkout master
$ git commit -m 'initial commit' $ git add forgotten_file $ git commit --amend # solo se mostraría un commit
git reset --soft
git reset --mixed
git reset --hard
git log
git log --oneline
-p
: muestra diferencias entre los commits-<n>
: muestra los n últimos commits–stat
: estadísticas (archivos modificados, líneas modificadas, etc)–shortstat
name-only
name-status
relative-date
–pretty=format:«<consulta_tabla>»
–short
–full
–fuller
–abbrev-commit
: muestra primeros caracteres del sha (en vez de los 40)–since:
/–after
: acepta fechas concretas (2018-06-18) o relativas (2 years, months, days, hours)–until:
/
-S<cadena>
: busca en los cambios la cadena (buscar una función/clase/atributo/comentario)git config --global alias.cm ‘-c “user.name=matebcn” commit’
git config [--global] user.name “mate”
git config [--global] user.email miemail@midominio.algo
git config --show-origin --get-all user.name
git config --list
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
http://download.eclipse.org/egit/updates
/via: https://crunchify.com/how-to-configure-bitbucket-git-repository-in-you-eclipse/