git/hub

Crear un proyecto Git

Desde Git fue diseñado con un gran proyecto como Linux en mente, hay una gran cantidad de comandos de Git. Sin embargo, para utilizar los fundamentos de Git, usted sólo necesita saber algunos términos. Todos comienzan de la misma manera, con la palabra "git."

Inicio

git init : Inicializa un nuevo repositorio Git. Crea un proyecto vacio rn un subdirectorio oculto ,git, que es una carpeta normal del sistema operativo.

  • Puntero master identifica la última versión de la rama principal
  • Puntero HEAD identifica la versión que hay en el directorio de trabajo
  • Ambos identifican ahora la primera versión vacía (única esxistente)

git init <directorio>

Crea un repositorio Git vacío en el directorio que se especifique. Al ejecutar este comando se crea una nueva carpeta con el nombre que especifiquemos y dentro de ella una carpeta de nombre .git.

En la mayoría de proyectos, normalmente no usan git init para crear los repositorios locales. En vez de eso, suelen usar git clone para copiar un repositorio existente en la red a su máquina local.

El esquwema de trabajo normal en el equipo, será un directorio vacío, un repositorio central vacío como un almacén, y los repositorios locales de los desarrolladores, creados con git init o clonados que serán no-vacíos.

Clonar

git clone clona un repositorio Git existente. Esun repositorio Git completo; almacena su propio historia, administra sus propios archivos y es un entorno completamente aislado del repositorio original. Automáticamente se crea una conexión remota llamada origin que apunta al repositorio original. Esto hace que interactuar desde este repositorio con el repositorio central sea muy sencillo.

git clone <repo>

En este ejemplo se clona el repositorio ubicado en <repo> en la máquina local. El repositorio original se suele ubicar en una máquina remota accesible a través de HTTP.

git clone igual que git init, son acciones que se realiza en solo una vez. Después de que obtengamos una copia de trabajo, todas las operaciones de control de la versión se administran a través de nuestro repositorio local.

Añadir

git add no sirve para añadir archivos, su función es añadir un cambio en el directorio de trabajo e informa al área de preparación para su próxima versión. Le dices a Git que quieres incluir actualizaciones en un archivo en particular en el siguiente commit. Los cambios no se guardan hasta que se ejecuta git commit.

git add .

Añade todo lo modificado al índice

git add <file>

Guarda todos los cambios del archivo <file> para el siguiente commit

Estado

git status compruebe el estado de su repositorio, se emplea para ver el estado del directorio de trabajo y del área de preparación. Permite ver qué cambios se han preparado, cuáles no, y qué archivos no llevan seguimiento de Git. La salida del comando no muestra ninguna información sobre la historia del proyecto confirmada. Para esto, se ha de usar

git status

 

Lista qué archivos se han preparado, no preparado y sin seguimiento.

Commit

git commit comando más importante de Git. Después de realizar cualquier tipo de cambio, confirma la instantánea preparada a la historia del proyecto en el repositorio. Las instantáneas confirmadas pueden considerarse versiones "seguras" de un proyecto.

git commit

Confirma la instantánea preparada. Abrirá un editor de texto que te pedirá un mensaje de confirmación. Después de introducir un mensaje, guarda el archivo y cierra el editor para crear el commit real.

git commit -m "<mensaje>"

Confirma la instantánea preparada, pero en vez de abrir un editor de texto, usa <message> como mensaje de confirmación.

git commit -a

Confirma una instantánea de todos los cambios en el directorio de trabajo. Esto solo incluye modificaciones para archivos bajo seguimiento (los que se han añadido con git add en algún momento).

Git no trabaja sobre el repositorio central sino en el reepositorio local, cada repositorio local de un desarrollador es un búfer entre sus contribuciones y el repositorio central. Los desarrolladores que usan Git pueden juntar varios commits en su repositorio local, permite trabajar en un entorno personal y aislado, aplazando la integración hasta que sea conveniente.

Deshacer cambios

git checkout: El comando tiene tres funciones: permite recuperar archivos, commits y ramas.

Recuperar un commit hace que el directorio de trabajo entero coincida con el commit. Esto puede usarse para ver un estado antiguo del proyecto sin cambiar el estado actual de ninguna forma.

Restaura versiones anteriores del proy. en el directorio de trabajo

  • Peligro! checkout borra directorio de trabajo antes de restaurar (guardar antes)
  • Peligro! Crear nueva rama antes de modificar para integrar cambios en proyecto

El puntero master, sigue identificando la rama principal del desarrollo, la última versión.

El puntero HEAD, identifica ahora la version abierta en el directorio de trabajo.

git checkout master

La rama master se crea al iniciar el proyecto con git init, según se van creando commit, el puntero master y head apuntan a la última versión.

git checkout <commit> <file>

Recupera una versión anterior de un archivo. Esto convierte el <file> que hay en el directorio de trabajo en una copia exacta del que hay en <commit> y la añade al área de preparación.

git checkout <commit>

Actualiza todos los archivos del directorio de trabajo para coincidir con el commit especificado. Es posible usar un hash del commit o una etiqueta como el argumento del <commit>. Esto te pondrá en un estado HEAD independiente.

Ramificaciones

git branch : Trabajar con varios colaboradores y quiere hacer cambios por su cuenta? Este comando le permitirá crear una nueva rama, o línea de tiempo de confirmaciones, de los cambios y adiciones de archivos que son totalmente de su propia cuenta. Su título va después del comando. Si querías una nueva rama llamada "gatos", debería escribir:

git branch gatos

 

 

Git crea una rama en este momento, y la reconoce mediante un apuntador especial denominado HEAD.

Para trabajar en esta rama, usaremos el comando git checkout. Hagamos una prueba, saltando a la rama gatos recién creada:

$ git checkout gatos

En este momento el apuntador HEAD se mueve a esta rama y en esta rama se van realizando la confirmación de cambios, esta rama segira avanzando y la rama master que da parada desde que lanzaste el checkout.

git merge : Cuando hayas terminado de trabajar en una rama, puede fusionar los cambios de nuevo a la rama principal, que es visible para todos los colaboradores. git merge gatos tomarían todos los cambios realizados en la rama "gatos" y agregarlos al maestro.

git push : Si usted está trabajando en su computadora local, y quiere que sus confirmaciones sean visibles en línea en GitHub, así, que "empujar" los cambios a GitHub con este comando.

git pull : Si usted está trabajando en su computadora local y desea obtener la versión más actualizada de su repositorio para trabajar, "tirar" los cambios desde GitHub con este comando.