Glosario en Curso Profesional de Git y GitHub
Glosario en Curso Profesional de Git y GitHub
Glosario en Curso Profesional de Git y GitHub
Artículo Glosario
1
Miguel Nieva 23 PlatziRank Mayo 31, 2016
Si quieres que agreguemos uno nuevo ó investigamos más a fondo alguno puntual, déjalo
7
en los comentarios.
8
9
Índice
10
1. CONCEPTOS
- Arquitectura de árbol
- Branch
- Deployment (Despliegue)
- Fork
- Gitflow Workflow
- Hook
- Master (Branch)
- Pull Request
- Repositorio
- Staging Area
- Tag
- Working Directory
2. COMANDOS
- git add
- git branch
- git checkout
- git clean
- git clone
- git commit
- git config
- git fetch
- git init
- git log
- git merge
- git pull
- git push
- git rebase
- git reflog
- git remote
- git reset
- git revert
- git status
3. HERRAMIENTAS
- git extras
- GitLab
- Zenhub.io
1. CONCEPTOS
Arquitectura de árbol
Dependiendo del tipo y tamaño del proyecto se pueden crear muchos ambientes, pero
generalmente están enfocados en 3 tipos:
1. Development (Desarrollo)
Se refiere al servidor donde corre el proyecto "en línea”, donde los usuarios pueden
interactuar con él.
3. Testing
Son exámenes que se ejecutan sobre un proyecto con la finalidad de encontrar fallos en el
código.
Puede suceder en un “Central Repository” como GitHub ó integrado con el servidor de
producción, antes de entrar plenamente a esta última área.
Branch (Rama)
Una rama es una línea del tiempo independiente al desarrollo principal.
Piénsalo como una forma de generar una nueva área de working directory, staging area e
historia del proyecto.
Los nuevos “commits” son grabados en la historia de la rama actual, que resultan en un
“fork” en la historia del proyecto.
Deployment (Despliegue)
Son todas las actividades que hacen que un proyecto de software esté disponible para su
uso, por parte de muchos usuarios.
Fork es una acción que se utiliza en “GitHub” para hacer una copia exacta de un
repositorio ajeno, al nuestro.
Al hacer la copia exacta, se queda con el último commit que el repositorio original tenía
en ese momento.
Gitflow Workflow
a) Bugs
b) Features,
c) Releases.
Su estructura estricta de ramas permite trabajar proyectos masivamente grandes.
El proceso es el siguiente.
Para esta sección, se dividen en 2 tipos, la rama principal llamada “development”, el cual
va a recibir todas las conclusiones de las siguientes ramas derivadas, las cuales son el
segundo tipo, llamadas “features”.
Una vez que estén listas, se fusionan directamente con la rama “development”, el cual va
acumulando todos los features confirmados.
Esta rama funciona para prepara los lanzamientos. Se pueden revisar ante “testing” y por
auditoría de otros miembros del equipo.
En caso de que haya modificaciones por parte de este equipo, se trabaja sobre la misma
rama de "releases".
Una vez que tengan listo las modificaciones, ellos pueden subir a “master”. Regularmente
ellos son los líderes del proyecto.
La denominación de cada tag depende del tipo de organización que tenga el equipo.
Referencia: https://git-scm.com/downloads/guis
Los Graphical User Interfaces son clientes, programas, que puedes instalar en tu sistema
operativo y sintetizan la manera en cómo puedes interactuar con GIT, de manera gráfica.
Tienen la ventaja de que son más cómodos para trabajar con GIT y ver cómo el proyecto
está evolucionando, autores, commits, ramas, tiempos de desarrollo.
Sólo hay un inconveniente, el cual es que debes dominar GIT en terminal primero, antes
de usarlos, como una recomendación dura.
Esto debido a que habrá momentos donde el GUI elegido no sepa resolver ciertos
problemas, como fusiones, y él mismo te obligue a resolverlo vía terminal.
Por ello, aprende GIT y luego ten la libertad de descargar el que más te guste.
HEAD
Internamente, git checkout se puede utilizar para actualizar el HEAD hacia un punto
espefícifico (branch ó commit)
git checkout B
… el cual B representa el COMMIT ID, el número largo bajo el formato de SHA-1.
Hook
Es un script que corre automáticamente cada vez que sucede un evento particular en un
repositorio.
Para entrar a ellos, los puedes localizar dentro de tu carpeta de trabajo, entrando en:
cd .git/hooks
Si activas y automatizas, por ejemplo, post-commit, y dentro de este archivo lo llenas con:
git status
git log
https://github.com/git/git/blob/master/Documentation/githooks.txt
Master
La rama principal de desarrollo. Cada vez que vayas a crear un repositorio de GIT, una
rama llamada “master” es creada, y se vuelve la rama activa por defecto.
Pull Request
Es un “feature” que permite a los desarrolladores colaborar fácilmente en comunidades
como GitHub ó Bitbucket.
El ciclo completo de colaboración para un Pull Request funciona de esta manera:
El dueño, project manager ó líder del repositorio original será el único que podrá aceptar
los cambios ó desecharlos.
- Mercurial
- Git
El que se utiliza en este curso es el último de ellos. El más popular y usado con respecto a
tendencias de búsqueda.
Staging Area
Imagina que quieres realizar un commit, e hiciste varios cambios en el proyecto, pero sólo
quieres hacer un commit de ciertos archivos. Es aquí donde el staging area tiene sentido.
Elige los que quieras que suban al repositorio y prepáralos en esta área.
Tag
Una referencia típicamente usada para marcar un punto particular en una cadena de
commits.
El "-a” coloca la versión del tag.El “-m" te permite ponerle una descripción sobre lo que
trata ese tag.
Si colocas:
git tag
Si colocas:
tag v1.0
commit ca82a6dff817ec66f44342007202690a93763949
Un área en el cual contiene los cambios en “local” pero que no se ha realizado ningún tipo
de “guardado” en el área de staging “preparación” ni en el repositorio.
Git tiene identificado los cambios que haces, pero no hace nada con ellos, hasta que tú se
lo indiques.
COMANDOS
git add
El comando es:
git add [nombre del archivo] -> Agrega el cambio ó creación del archivo de manera
individual.
git add . -> Agrega los cambios de todos los archivos, pero no los nuevos creados ó
nuevos eliminados.git add -A -> Agrega los cambios los archivos, incluidos nuevos
creados ó nuevos eliminados.
git branch
Este comando es tu administrador general de ramas.
Te permite crear diferentes ramas de desarrollo, dentro de un repositorio particular.
El comando a utilizar es:
1. git branch [nombre de la rama a crear]2. * git checkout [nombre de la rama a crear].
* Recuerda que una vez creada, debes cambiarte hacia ella.
Si quieres crear la rama y cambiarte automáticamente, puedes usar:
git checkout -b [nombre de la rama a crear]
git checkout
En adición a poder moverte entre commits y viejos archivos para revisión, git checkout
también te permite navegar entre las diferentes ramas existentes.
Combinado con los otros comandos básicos de GIT, es una forma de trabajar una
particular línea de desarrollo.
git checkout [rama]git checkout [Commit ID]
git clone
Crea una copia de un repositorio existente de GIT.
Clonar es el camino más común para que los desarrolladores obtengan una copia del
proyecto, del repositorio central. Regularmente va hacia local
git clone [dirección del repositorio, puede ser https;//…git, ó, ssh:...]
git commit
Inserta el conjunto de archivos que se encuentra en el "Staging Area” y los colocan en el
repositorio.
Cada “set” de archivos insertados en la historia del proyecto se la llama “commit”.
Combinado con git add, ese define el proceso básico de GIT.
git commit -m [nombre del título del commit]
git commit --amend
git config
git fetch
Te permite descargar una rama de otro repositorio, con todos sus commits y archivos.
Pero, no busca integrar nada en tu repositorio local.
git init
Inicia un nuevo repositorio de Git. Esto permite que Git empiece a rastrear al repositorio
con todos los cambios que hagas dentro.
git init
git log
git merge
git pull
git push
Te permite mover una rama local a otro repositorio, que usualmente es la forma de
publicar contribuciones, en un servidor remoto.
git rebase
Te permite mover tus ramas hacia adelante, en lugar de fusionarlas. Esto ayuda a que no
hagas fusiones innecesarias.
Cuando necesitas una rama más completa y detallada, entonces se utiliza rebase para
lograrlo.
Por ejemplo, en este caso, la rama “feature”, en lugar de fusionar, colocaremos toda la
rama completa enfrente de master.
Con esto, en lugar de haber hecho una fusión en un solo commit, en caso de que se
necesite un mayor análisis de la rama, dejamos todo lo que se hizo en la rama feature y la
colocamos adelante de nuestra rama master (principal).
git remote
En lugar de poner constantemente la URL para realizar los comandos de “fetch”, “pull”,
y “push”, sólo le asignamos un nombre y podemos llamar esa conexión de manera rápida.
git remote add [“nombre del remoto"]* Por defecto, se llama “origin”.
git reset
Hacer un reset te permite limpiar ó completamente eliminar cambios que no han sido
publicados al repositorio público.
git revert
Deshace un commit, colocando uno extra adelante de la rama, quitando los cambios
del commit elegido.
El proceso es:
Git lo identificará pero no lo borrará, si no, más bien, verá qué cambios se ejecutaron en
ese commit puntualmente y creará uno nuevo, adelante del último, revirtiendo todas las
acciones de ese commit.
Porque alteraría la historia del proyecto. Y, aunque haya un comió que esté mal creado, si
se borra, alteraría toda la historia. La solución es conocer qué tiene ese commit y
revertirlo con un commit nuevo.
git status
git status
HERRAMIENTAS
git extras
https://github.com/tj/git-extras
GitLab
Es una plataforma privada, con una interfaz similar a GitHub, que se instala dentro de tu
servidor.
Zenhub.io
Incluye trabajo con SCRUM, sprints y una mejor organización con respecto a Issues y un
concepto llamado “Epics”.
Deja tu comentario
Enviar
Top Nuevas
Responder
Responder
Genial Nathan.
Responder
Responder
Responder
ennyah3h 73 Puntos 6 meses
ya está, lo he leído rapidisimo
Responder
Responder
Responder
Responder
Responder
1 Responder
0 Responder
0 Responder
Responder
Responder
mgoscar 108 Puntos 4 meses
A leer mucho!!!
0 Responder
0 Responder
https://services.github.com/kit/downloads/github-git-cheat-sheet.pdf
Responder
Saludos!!!
Responder
Creo que si eres programador y no sabes git, de entrada te corta muchas puertas.
andresnator 19 Puntos 3 meses
Pues la verdad te facilitará la vida, pero decir que obligatorio? mmm. Lo que si es obligatorio es que sepas usar un
repositorio. Nada de Dropbox y esas Chingonadas
0
Responder
0
Me gustaría aportar algo: en el 5 gráfico, Gitflow Workflow, faltaron las flechitas que conectan las ramas de 'bugs' con
develop (además de master).
Un saludo
Responder
0 Responder
0 Responder
0 Responder