Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Aprendiendo git

No description
by

Geordano Polanco

on 9 June 2015

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Aprendiendo git

Aprendiendo git
Navegando en la historia de un repositorio
Trabajar con repositorios remotos
Introducción a github
Trabajar con ramas en git
Navegando en la historia
de un repositorio

[ git checkout ]
Principales funciones:
Cuidado con esto!

Este comando añade el archivo
antiguo al área de preparación,
si lo confirmas, sobre escribe la
versión actual del archivo.

Si no quieres sobre escribirlo,
utiliza el siguiente comando:
[revert]
El comando git revert
deshace una instantánea confirmada. Pero, en vez de eliminar el commit de la historia del proyecto, resuelve cómo deshacer cambios introducidos por el commit
y agrega un nuevo commit con el contenido resultante.
Commit revertido
commit resultante
[ git revert ]
[ git reset ]
[ git clean ]
[ git checkout ]
[reset]
Como git checkout,
git reset
es un comando versátil con muchas configuraciones. Puede usarse para eliminar instantáneas confirmadas, aunque se suele usar más para deshacer cambios en el área de preparación y en el directorio de trabajo. En ambos casos,
solo debe usarse para deshacer cambios locales

nunca debes resetear instantáneas que hayas compartido con otros desarrolladores.
git reset <file>:
Elimina el archivo especificado del área de preparación.

git reset --hard:
Resetea el área de preparación para coincidir con el commit más reciente.

git reset <commit>:
Mueve la punta de la rama actual a <commit>, resetea el área de preparación, pero no el directorio de trabajo.

git reset --hard <commit>:
Mueve la punta de la rama actual a <commit> y resetea el área de preparación y el directorio de trabajo para que coincidan.
Diferencia entre git
revert
y git
reset
Primero:

git revert
no necesita cambiar la historia del proyecto, lo que hace que sea una operación "segura" para commits
que ya se hayan publicado en un repositorio compartido.

Segundo:

git revert
puede apuntar a un commit individual
en un momento arbitrario en la historia, mientras que
git
reset
solo puede trabajar hacia el pasado del commit
actual.

Por ejemplo
, si quieres deshacer un commit antiguo,
con git
reset
, hay que eliminar todos los cambios que haya habido
después del commit de destino, eliminarlo y reconfirmar
todos los commits subsecuentes.
[ clean ]
El comando
git clean
elimina archivos sin seguimiento del directorio de trabajo.
git clean
no se
puede deshacer, así que asegúrate de que realmente quieres eliminar los archivos sin seguimiento
antes de ejecutarlo.
git clean –n:
Esto te mostrará qué archivos van a eliminarse sin realmente hacerlo.

git clean -f <path>:
Elimina archivos sin seguimiento pero limita la operación a la ruta especificada.

git clean –df:
Elimina archivos y directorios sin seguimiento del directorio actual.

git clean –xf:
Elimina archivos sin seguimiento del directorio actual además de cualquier archivo que Git normalmente ignora.
Opciones del comando
Ten en cuenta que,
junto con git reset, git clean es uno de los únicos comandos Git que pueden eliminar commits de forma permanente
,
hay que tener cuidado
. De hecho es tan fácil perder ampliciones importantes, que los
gestores del proyecto necesitan la opción
-f
para incluso las operaciones más básicas
. Esto evita que se elimine todo accidentalmente con una ingenua llamada
git clean.
La he liado!
git clean -f

Aprendiendo git
Navegando en la historia de un repositorio
Trabajar con repositorios remotos
Trabajar con ramas en git
[ git remote ]
[ git fetch ]
[ git pull ]
[ git push ]
[git clone]
Utilizar este comando con cuidado!
Alrededor del
90% de los trabajos
relacionados con el control de versiones,
ocurre en el
repositorio local
, pero si quieres tener tus repositorios seguros o compartir el trabajo con otros desarrolladores, lo más común es crear un repositorio remoto donde alojarlo.
Repositorios remotos
¿Cómo funciona esto?
git remote:
lista de conexiones que tienes a otros repositorios

git remote –v:
igual al anterior pero incluyendo la url de cada conexión

git remote add <nombre> <url>:
Crea una nueva conexión a un repositorio remoto, utilizamos el nombre como atajo para acceder a esta url.

git remote rm <nombre>:

elimina la conexión al repositorio remoto indicado

git remote rename <nombre> <nuevo nombre>:
Renombra una conexión remota
[ git remote ]
Para poder colaborar en cualquier proyecto Git
, necesitas saber cómo gestionar tus repositorios remotos.
Los repositorios remotos son versiones de nuestros proyecto que se encuentran alojadas en
algún punto de la red. Podemos tener varios repositorios remotos. Colaborar con otros implica gestionar estos repositorios remotos,
y empujar (push) y descargar (pull)
datos de ellos cuando necesites compartir.

Git está diseñado para dar a cada desarrollador un entorno de desarrollo totalmente aislado. Esto
significa que
la información no pasa automáticamente entre repositorios
. En vez de eso, los
desarrolladores necesitan
obtener commits del repositorio público
en su repositorio local o
enviar
manualmente sus commits locales al repositorio central
. El comando
git remote
es simplemente la
forma más sencilla de pasar las URL a los comandos de "compartir".
Crear enlaces a repositorios remotos [ git remote ]

[ git fetch ]
El comando
git fetch

importa commits de un repositorio remoto a tu repositorio local
. Los commits resultantes se almacenan como ramas remotas en vez de las ramas normales locales con las que hemos trabajado. Esto permite revisar cambios antes de integrarlos en la copia del proyecto. Tendrás que unir ambos manualmente a posteriori.
git fetch <remote>:
Recupera (fetch) todas las ramas, commits y archivos del remoto.

git fetch <remote> <branch>:
igual que el anterior pero sólo de la rama especificada
[ git pull ]
Con el uso del comando
git pull
nos ahorramos realizar de forma manual, tanto el
fetch
como el
merge
, este comando Recupera (fetch) la copia remota especificada de la rama actual e
inmediatamente la fusiona con la copia local
.
Esto es lo mismo que

git fetch <remote>
seguido de
git merge origin/<current-branch>.
[ git push ]
Push
es cómo
transferir commits del repositorio local a un repositorio remoto
. Es el equivalente de
git fetch
, pero mientras que recuperando (fetch) se importan commits a ramas locales, con
push
se exportan los commits a ramas remotas.
git push

tiene el potencial de sobrescribir cambios
, así que hay que tener cuidado al usarlo.
git push origin master:
Envía el trabajo guardado en la rama master al remoto

git push <remote> --all:
Envía todas tus ramas locales a la rama remota especificada.
[ git clone ]
Cuando inicias a trabajar en proyectos
colaborativos
, lo más normal es que tengas que clonar el proyecto a tu ordenador para inicial a colaborar con este repositorio.
Para clonar el repositorio utilizamos el siguiente comando:
Git clone <url de repositorio>
Agregando remoto al repositorio local
1. Clonando uno existente
- git clone <url remoto>

2.
Agregando el remoto a un repositorio existente
- git remote add <nombre remoto> url
Recuperar commits antiguos con:

git checkout <commit>

Recuperar versión anterior de un archivo:
git checkout <commit> <file>

Recuperar versión anterior de un archivo:
git checkout HEAD <file>

Si terminaste de navegar en la historia del repositorio y te dispone a continuar trabajando, debes regresar a la rama donde estabas trabajando:
git checkout <nombre rama>
Ya tenemos un repositorio en local
enlazado al remoto.
¿y ahora que?
¿guardamos algo al remoto?
Ramas en git
[ git branch ]
Una rama representa una línea independiente de desarrollo
. Puedes pensar en ellos como una forma de pedir un directorio de trabajo, un área de preparación y una nueva historia de proyecto.

Los nuevos commits se guardan en la historia de la
rama actual
, lo que hace que se bifurque la historia del proyecto.
git branch:
Lista todas las ramas del repositorio

git branch –v:
listado de rama con sus enlaces a los repositorios remotos

git branch <nombre>:
Crea una nueva rama con el nombre indicado

git branch -d <nombre>:
Elimina la rama especificada. Git lo evita si tiene cambios sin fusionar.

git branch -D <branch>:
Fuerza su eliminación
, incluso si tiene cambios no fusionados.

git log --walk-reflogs <nombre>:
muestra todos los commit de la rama especificada y su
reflog
Opciones básicas para el comando

[ git checkout]
Ramas remotas en git
[ git branch origin/ ]
Cuando trabajamos con repositorios remotos en proyectos colaborativos, lo normal sería crear
ramas por funcionalidades
del proyecto, de esta forma se evita afectar el desarrollo central del
proyecto.

Las ramas remotas suelen tener un formato
[nombre-remoto/nombre-rama],
Por ejemplo, en el caso
de la rama principal del proyecto
origin/master
. Por tanto, si queremos crear y compartir una nueva
rama para el desarrollo de una nueva funcionalidad con el resto del equipo, tendremos que crear
la rama en nuestro repositorio local y llevarla después al repositorio remoto:

git checkout -b newBranch


git push origin newBranch



Para que los demás miembros del equipo puedan
sincronizar con el repositorio remoto
, y actualizar
su repositorio local con la nueva rama, tendrían que escribir el siguiente comando:

git fetch origin



Servicios de hosting
Sin lugar a duda la más popular de todas las opciones que puedas encontrar, en
github puedes crear tantos repositorios como quieras
“De forma gratuita”
con el
inconveniente de que todos tus repositorios son públicos a toda la comunidad de usuarios.

Si quieres crear repositorios privados en github debes de pasar por caja €.

Uno de los puntos fuertes de Github es su comunidad de usuarios, es un lugar donde puedes
encontrar todo tipo de repositorio público, ver su código, colaborar con esos repositorio y
hasta descargarlos o copiártelos a tu perfil (Fork).
Servicio
de hosting

bitbucket.org :
Una buena opción a github es bitbucket, utiliza el mismo sistema de trabajo
que github, pero su popularidad no es tan alta. Se destaca más porque te da la posibilidad
de crear tantos repositorios privados como desees,
con hasta 5 colaboradores cada repositorio
.

En bitbucket
puedes crear repositorios, agregar colaboradores, hacer fork de otros
repositorios, hacer peticiones de integración de mejoras o
PullRequest
, tiene todas las
funcionalidades que tiene github, pero le falta lo mejor, que es la enorme comunidad que
hay detrás de github.

Geordano Polanco
Yo, ya he terminado!
¿Alguna pregunta?
@jordano_p
linkedin.com/in/geordanopolanco
Full transcript