git - Guía rápida

Una guía concisa para que te inicies en git, sin contenido profundo ;)

Autor:Roger Dudler
Agradecimientos:@tfnico, @fhdyNamics
Si hay algún error, por favor, engithubReportar problemas

Instalación

Descargar git para OSX

Descargar git para Windows

Descargar git para Linux

Crear un nuevo repositorio

Crea una nueva carpeta, ábrela y luego ejecuta
git init
para crear un nuevo repositorio git.

Clonar un repositorio

Ejecuta el siguiente comando para crear una copia clonada de un repositorio local:
git clone /path/to/repository
Si el repositorio está en un servidor remoto, tu comando sería así:
git clone username@host:/path/to/repository

Flujo de trabajo

Tu repositorio local está compuesto por tres “árboles” mantenidos por git. El primero es tu directorio de trabajo.Directorio de trabajo, que contiene los archivos reales; el segundo es暂存区(Index)El segundo es el índice (staging area), que es como un área de caché donde se guardan temporalmente tus cambios; el último es HEAD.HEAD, apunta al resultado de tu último commit.

Añadir y confirmar

Puedes proponer cambios (añadirlos al área de staging) usando el siguiente comando:
git add <filename>
git add *
Este es el primer paso del flujo de trabajo básico de git; usa el siguiente comando para confirmar (commit) los cambios:
git commit -m "代码提交信息"
Ahora, tus cambios ya han sido confirmados enHEAD, pero aún no en tu repositorio remoto.

Enviar cambios

Tus cambios ahora ya están en el ... del repositorio localHEAD¡Listo! Ejecuta el siguiente comando para enviar estos cambios al repositorio remoto:
git push origin master
Se puedemastercámbialo por cualquier rama que quieras enviar.

Si aún no has clonado un repositorio existente y quieres conectar tu repositorio a un servidor remoto, puedes usar el siguiente comando para añadirlo:
git remote add origin <server>
Así podrás enviar tus cambios al servidor que has añadido.

Ramas

Las ramas se usan para aislar el desarrollo de funcionalidades. Cuando creas tu repositorio,mastermaster es la rama “por defecto”. Desarrolla en otras ramas y, cuando termines, fusiónalas con la rama principal.

Crea una rama llamada "feature_x" y cambia a ella:
git checkout -b feature_x
Cambia de nuevo a la rama principal:
git checkout master
Luego elimina la rama recién creada:
git branch -d feature_x
A menos que envíes (push) la rama al repositorio remoto, esa rama seráno visibles para otros:
git push origin <branch>

Actualizar y fusionar

Para actualizar tu repositorio local a los últimos cambios, ejecuta:
git pull
para estar en tu directorio de trabajoobtener (fetch)uniónfusionar (merge)los cambios remotos.
Para fusionar otra rama en tu rama actual (por ejemplo, master), ejecuta:
git merge <branch>
En ambos casos, git intentará fusionar los cambios automáticamente. Lamentablemente, esto no siempre tiene éxito, y pueden aparecerconflictos (conflicts)En ese momento tendrás que modificar estos archivos para resolver manualmente estos conflictos.conflictos (conflicts)Después de modificarlos, ejecuta el siguiente comando para marcarlos como fusionados correctamente:
git add <filename>
Antes de fusionar los cambios, puedes usar el siguiente comando para previsualizar las diferencias:
git diff <source_branch> <target_branch>

Etiquetas

Es recomendable crear etiquetas para los lanzamientos de software. Este concepto ya existía, y también existe en SVN. Puedes ejecutar el siguiente comando para crear una llamada1.0.0etiquetas:
git tag 1.0.0 1b2e1d63ff
1b2e1d63ffson los primeros 10 caracteres del ID de commit que quieres etiquetar. Puedes obtener el ID de commit con el siguiente comando:
git log
También puedes usar menos caracteres del ID de commit, siempre que la referencia sea única.

Reemplazar cambios locales

Si cometes un error (aunque, por supuesto, es mejor que nunca ocurra), puedes usar el siguiente comando para reemplazar los cambios locales:
git checkout -- <filename>
Este comando reemplazará los archivos de tu directorio de trabajo con el contenido más reciente de HEAD. Los cambios que ya han sido añadidos al área de preparación y los archivos nuevos no se verán afectados.

Si quieres descartar todos tus cambios y confirmaciones locales, puedes obtener el historial de versiones más reciente del servidor y apuntar tu rama principal local hacia él:
git fetch origin
git reset --hard origin/master

Consejos útiles

git gráfico integrado:
gitk
Salida de git en color:
git config color.ui true
Al mostrar el historial, la información de cada commit se muestra en una sola línea:
git config format.pretty oneline
Añadir archivos interactivamente al área de preparación:
git add -i

Enlaces y recursos

Clientes gráficos

Guías y manuales