Explicaré Git de la manera en que habría deseado que alguien lo hiciera cuando yo empecé a aprender a programar.

Te mostraré como puedes iniciar con solo unos pocos comandos y los conceptos que hay detrás de estos.

Conceptos básicos

Tu código local

Este es el resultado del trabajo que haces en tu computadora. Cualquier edición, formato, características o trabajo de desarrollo que tienes en tu computadora es tu código local.

Status "preparado" (staged)

Una vez que te sientas satisfecho con los cambios o la cantidad de trabajo realizado, puedes marcar tu código como "preparado". Lo que quiere decir que estás declarando que dichas líneas de código están listas para ser confirmadas (committed).

El servidor

Ya que sientas que los archivos que tienes "preparados" están listos, puedes enviarlos a tu servidor, (GitHub, GitLab, etc.) el cual guarda todo tu código para que otras personas lo puedan ver también (en los casos apropiados). Ahora tus archivos pueden ser vistos por otras personas y ellas pueden trabajar en estos.

El objetivo final

La idea detrás de git es que tu código (digamos de un proyecto) que se encuentra en un servidor remoto debería estar sincronizado con el código que tienes en tu ordenador. Cuando trabajas con otras personas, su código debería estar sincronizado con tu código. Así si tus compañeros o colaboradores "envían"  código nuevo, tú también deberías fácilmente poder actualizar tu código para reflejar los cambios que ellos hicieron.

La meta u objetivo final es que todo lo que se encuentra en el servidor debe ser lo mismo en todas partes, debe ser igual, el mismo código que se encuentra en tu máquina local. Deberías enviar archivos al servidor lo antes posible para que cuando otros vean tus cambios, ellos puedan tener la versión más actual.

Flujo de trabajo

Digamos que tienes una carpeta en tu computadora donde se encuentra tu código y quieres ponerlo en GitHub para poder usar control de versiones.

Aquí te muestro como hacerlo:

1. Creando un repositorio.

Hay dos maneras de obtener un repositorio - puedes crear uno tu mismo o puedes trabajar con el repositorio de alguien más y contribuir a este. La opción que elijas depende del proyecto en que estés trabajando. Si trabajas en un proyecto propio es más probable que quieras crear un repositorio y empezar a escribir código. Cuando trabajas en código abierto (open source) o en un equipo lo más probable es que vayas a usar un repositorio que ya existe. Hablemos de como hacer ambas.

Crea un Repositorio

Primero necesitarás crear una cuenta en GitHub si es que no tienes una aún. Haz clic en la pestaña Repositorios y en "Nuevo" ("New").

New button to create new repository

Sigue las instrucciones para crear tu nuevo repositorio. Digamos que llamamos este repositorio test-repo . Una vez que lo hayas creado, GitHub te muestra como configurarlo en tu computadora de manera local.

Sigue las instrucciones para crear un nuevo repositorio en la línea de comandos -

Clonando un repositorio

git clone <repositorio>

Digamos que quieres obtener el código en el que yo estoy trabajando para que puedas también trabajar con él en tu computadora. Necesitarás encontrar mi cuenta de GitHub y clonar el repositorio en el que estés interesado. Hoy vamos a trabajar en este repositorio.

git clone git@github.com:shrutikapoor08/devjoke.git


2. Crea una rama (branch)

Creando una rama ayuda a mantener el trabajo en progreso separado del código que trabaja bien. También ayuda a modular tu código y mantener características separadas mientras aún trabajas en ellas. Hagamos una rama nueva  rama-para-chiste usando:

git checkout -b rama-para-chiste

Puedes enviar esta rama al servidor  (origin) con  el comando—

git push origin rama-para-chiste

Ahora supongamos que tú y yo somos compañeros de trabajo y estamos trabajando en un proyecto. Repasemos como sería este flujo de trabajo.

3. Modificando el código

Una vez que comprendas lo que hace el código, estarás listo para hacer ediciones. Si estás trabajando en el repositorio de alguien más, es una buena idea hacer una copia o bifurcación (fork) del repositorio "Forking" es copiar. Es como pasar el repositorio por una copiadora y obtener tu propia copia. Puedes hacer los cambios que quieras o que se necesiten con tu propia copia, editar archivos, borrarlos o agregar nuevos. Si quieres, puedes enviar tus actualizaciones y solicitar que tu código se integre al repositorio original.

Vamos a crear un fork o copia de este repositorio para modificar el código. Para esto haz clic en el botón "Fork" en la parte superior del repositorio (GitHub).

Ahora si vas a tu perfil de GitHub, podrás ver tu recién creado fork del repositorio. ¡Ajá, ajá!

A continuación vamos a realizar algunos cambios. Abre el archivo README.md. A este archivo vamos a agregar una #DevJoke! (chiste o humor de/para desarrolladores). Pensemos en un chiste bueno y agreguémoslo al inicio de este archivo. Aquí una #DevJoke para ti—

¿Porqué el programador perdió su trabajo?
.
.
.
.
¡Por no conseguir un arreglo!

4. Confirmado los cambios.

Ahora guardemos el archivo y confirmemos  los cambios( commit ). Si vas a hacer commit a un archivo recién creado, primero tendrás que agregarlo al área de preparación o "staging". Lo puedes hacer con—

git add <nombre_archivo>

Ya que tu archivo se encuentra "staged", puedes hacer "commit" para confirmar los cambios, asegúrate de agregar un mensaje a tu commit para ayudarte a recordar que cambios realizaste en este commit.

git commit -m "Agregué una #DevJoke"

5. Subir tus cambios

Recuerda, cuando trabajas en un repositorio en el que otras personas colaboran, es posible que mientras tú modificas tu versión local, ellos podrían haber subido cambios o código nuevo. Así que ahora el servidor va un "paso adelante" de ti. Por lo que necesitas sincronizar tu computadora con el servidor para asegurarte que tienes el código más actual, para ello puedes bajar los últimos cambios del servidor con—

git pull origin <nombre-de-la-rama>

Si nunca has creado una rama, no te preocupes. Git the da la rama  master por defecto. También puedes crear una nueva rama con—

git checkout -b <nueva-rama>

Ahora que has confirmado los cambios y tu máquina se ha sincronizado con el servidor, estás listo para subir tus modificaciones para que el mundo las vea. Para subir a la rama  master , puedes hacerlo con — git push origin master.

AJÚA!!! Has subido tus primeros cambios usando push! Date una palmadita en la espalda. Esa fue la parte más difícil. Ahora estás listo para confirmar todos los cambios que quieras.

6. Realizando un Pull Request

Ahora, envíame ese maravilloso chiste (#DevJoke) creando un pull request. Un pull request es una característica por medio de la cual el desarrollador, me solicita —a mí el propietario— fusionar sus cambios con mi repositorio. Crear un pull request es fácil. Ve a github.com y abre el repositorio en el que has estado trabajando.

Verás un botón para crear un Pull request como este:

Haz clic en el botón y sigue las instrucciones. Asegúrate que tus cambios se vean correctamente reflejados en la pantalla de "Comparing changes" (comparando cambios).

¡Haz clic en "Create pull request" (crear pull request) y es todo! ¡Ya acabamos! Has creado tu primer Pull request!

Ahora envíame ese chiste (#DevJoke)

Traducido del artículo de Shruti Kapoor - git 101 a git workflow to get you started pushing code