- Configuración
- Archivos de Configuración
- Crear
- Cambios locales
- Buscar
- Historial de Commits
- Ramas & Etiquetas
- Actualizar & Publicar
- Fusionar & Rebasar
- Deshacer
- Hello world
- Configurar clave SSH
$ git config --list
$ git config --local --list
$ git config --global --list
$ git config --system --list
$ git config --global user.name “[nombre apellido]”
$ git config --global user.email “[email-válido]”
$ git config --global color.ui auto
$ git config --global core.editor vi
<repo>/.git/config
~/.gitconfig
/etc/gitconfig
Existen dos maneras:
Vía SSH
$ git clone ssh://[email protected]/repo.git
Vía HTTP
$ git clone http://dominio.com/usuario/repo.git
$ git init
$ git status
$ git diff
$ git add
$ git add -p <archivo>
$ git commit -a
$ git commit
$ git commit -m 'aquí el mensaje'
$ git commit -am 'aquí el mensaje'
git commit --date="`date --date='n day ago'`" -am "Mensaje del commit"
¡No modificar commits ya publicados!
$ git commit -a --amend
GIT_COMMITTER_DATE="date" git commit --amend
git commit --amend --date="date"
git stash
git checkout branch2
git stash pop
git stash apply
git stash drop
$ git grep "Hola"
$ git grep "Hola" v2.5
Mostrar todos los commits, empezando por los más recientes (se mostrará el hash, información sobre el autor, fecha y título del commit):
$ git log
$ git log --oneline
$ git log --author="usuario"
$ git log -p <archivo>
$ git log --oneline <origin/master>..<remote/master> --left-right
$ git blame <archivo>
$ git reflog show
$ git reflog delete
$ git branch
$ git branch -r
$ git checkout <rama>
$ git checkout -b <rama>
$ git branch <nueva-rama>
$ git branch --track <nueva-rama> <rama-remota>
$ git branch -d <rama>
¡Perderás los cambios sin fusionar!
$ git branch -D <branch>
$ git tag <tag-name>
$ git tag -a <etiqueta>
$ git remote -v
$ git remote show <remoto>
$ git remote add <remoto> <url>
$ git fetch <remoto>
$ git remote pull <remote> <url>
$ git pull origin master
git pull --rebase <remote> <branch>
$ git push remote <remoto> <rama>
$ git push <remoto> :<rama> (desde Git v1.5.0) ó $ git push <remoto> --delete <rama> (desde Git v1.7.0)
$ git push --tags
$ git merge <rama>
¡No rebasar commits ya publicados!
$ git rebase <rama>
$ git rebase --abort
$ git rebase --continue
$ git mergetool
Usar tu editor para manualmente resolver conflictos y (después de resueltos) marcar el archivo como resuelto:
$ git add <archivo-resuelto>
$ git rm <archivo-resuelto>
$ git rebase -i <commit-just-before-first>
Ahora reemplazando esto,
pick <commit_id>
pick <commit_id2>
pick <commit_id3>
con esto,
pick <commit_id>
squash <commit_id2>
squash <commit_id3>
$ git reset --hard HEAD
$ git reset HEAD
$ git checkout HEAD <archivo>
$ git revert <commit>
$ git reset --hard <commit>
$ git reset --hard <remote/branch> es decir, upstream/master, origin/my-feature
Reestablecer tu puntero HEAD a un commit anterior y preservar todos los cambios en el área de pruebas (stage area):
$ git reset <commit>
Reestablecer tu puntero HEAD a un commit anterior y preservar los cambios locales sin confirmar (uncommitted changes):
$ git reset --keep <commit>
Remover los archivos que fueron accidentalmente agregados al commit antes de ser añadidos al .gitignore:
$ git rm -r --cached .
$ git add .
$ git commit -m "remove xyz file"
- Configuración
- Iniciando
- Features (características)
- Hacer un lanzamiento
- Hotfixes (revisiones)
- Comandos
$ brew install git-flow
$ port install git-flow
$ apt-get install git-flow
$ wget -q -O - --no-check-certificate https://github.com/nvie/gitflow/raw/develop/contrib/gitflow-installer.sh | bash
Git flow necesita ser inicializado con el fin de personalizar la configuración de tu proyecto. Empieza usando git-flow inicializándolo dentro de un repositorio git existente:
Tendrás que responder un par de preguntas acerca de las convenciones de nombramiento de tus ramas. Es recomendable usar los valores por defecto.
git flow init
Desarrolla nuevos features para próximos lanzamientos. Típicamente sólo existen en los repositorios de desarrolladores.
Esta acción crea una nueva rama (feature branch) basada en la rama de desarrollo (develop branch) y cambia a esta.
git flow feature start MIFEATURE
git flow feature finish MIFEATURE
¿Estás desarrollando un feature colaborativamente? Publica un feature en el servidor remoto, así puede ser usado por otros usuarios.
git flow feature publish MIFEATURE
git flow feature pull origin MIFEATURE
git flow feature track MIFEATURE
Apoya la preparación de un nuevo lanzamiento a producción. Permite la corrección de pequeños bugs y la preparación de metadatos para un lanzamiento.
Para empezar un lanzamiento, usa el comando "release" de git flow. Este crea una rama de lanzamiento (release branch) de la rama de desarrollo (develop branch). Opcionalmente puedes sustituir el hash sha-1 de un commit [BASE] para empezar el lanzamiento desde este. El commit debe estar en la rama de desarrollo (develop branch).
git flow release start RELEASE [BASE]
Es aconsejable publicar la rama de lanzamiento (release branch) después de crearla para permitir publicar commits de otros desarrolladores. Hazlo de manera similar a publicar un feature con el comando:
git flow release publish RELEASE
Terminando un lanzamiento es uno de los grandes pasos en la ramificación de git. Realiza varias acciones:
3) Vuelve a fusionar la rama de lanzamiento (release branch) en la rama de desarrollo (develop branch).
git flow release finish RELEASE
- Creamos una cuenta en Github
- Vamos a configurar git con los siguientes comandos:
git config --global user.name “[nombre apellido]”
ygit config --global user.email “[email-válido]”
Con el email y username de nuestra cuenta de Github - Vamos a github y creamos un nuevo repositorio que se llame
hello world
. - En el escritorio, creamos una carpeta nueva que se llame
helloworld
y nos cambiamos a ellacd helloworld
- Ejecutamos el comando
git init
para crear un repositorio local - Creamos el fichero
README.md
y dentro escribimos Mi primer repositorio en github. - Ejecutamos el comando
git add .
para añadir los cambios al repositorio local. - Ejecutamos el comando
git commit -m "Primer commit"
para confirmar los cambios del repositorio local - Vamos al repositorio que creamos en github y copiamos la clave ssh de formato:
[email protected]:user/repo.git
- Ejecutamos el comando
git remote add origin [email protected]:user/repo.git
para añadir el repositorio remoto - Ejecutamos el comando
git push origin master
para empujar los cambios al repositorio remoto
- Primero vamos a comprobar si ya tenemos generada la pareja de claves pública y privada, hacemos
cd ~/.ssh
- Si existe el directorio, pasa al siguiente paso. Si no existe, ejecuta el comando
ssh-keygen -t rsa
y dale enter a todo. - Una vez creado, hacemos
cd ~/.ssh
y ejecutamoscat id_rsa.pub
, esa es nuestra clave pública la copiamos entera. - Vamos a github, hacemos click en la parte superior derecha, donde está nuestra foto de perfil y nos vamos a settings.
- Nos movemos al apartado SSH and GPG keys, hacemos click en New SSH key y pegamos la clave pública que copiamos previamente.
- Listo, Ya puedes pushear a github desde el PC configurado.