primer-repositorio

==================

<h2>Instrucciones generales para crear un repositorio en GitHub</h2>

Instrucciones:

* Configurar Git

		git config --global user.name "Usuario"
		git config --global user.email "ejemplo@ejemplo.com"

	Info ProGit:
		Archivo /etc/gitconfig: Contiene valores para todos los
usuarios del sistema y todos sus repositorios.
		Si pasas la opción --system a git config, lee y escribe
específicamente en este archivo.

		Archivo ~/.gitconfig file: Específico a tu usuario.
		Puedes hacer que Git lea y escriba específicamente en
este archivo pasando la opción --global.

		Archivo config en el directorio de Git (es decir,
.git/config) del repositorio que estés utilizando actualmente:
Específico a ese repositorio. Cada nivel
sobrescribe los valores del nivel anterior, por lo que los valores de
.git/config tienen preferencia sobre los de /etc/gitconfig.

* Crear Llave SSH
	Más información: https://help.github.com/articles/generating-
ssh-keys
		ssh-keygen
		o
		ssh-keygen -t rsa -C "your_email@example.com" // Creates
a new ssh key, using the provided email as a label

	(Opcional):
		// start the ssh-agent in the background
		$ eval "$(ssh-agent -s)"
		// Agent pid 59566
		$ ssh-add ~/.ssh/id_rsa
luego poner la ruta donde la quiero guardar, abrirlo y copiar el
contenido de la clave y pegarlo en GitHub en la sección de SSH Keys

* Iniciar un repositorio desde el PC hacia GitHub
	Inicio en la carpeta que quiero el proyecto
		git init  // Creo carpeta .git
	para añadir un archivo hago
		git add archivo_ejemplo
		git add * // Añade toda la carpeta
		git add . // Lo mismo
	con commit hago seguimiento de los archivos en git (localmente)
		git commit -m "Descripción"
		git commit -am "Descripción" // Realiza un add y luego
el commit

	para conectar mi repositorio con el de GitHub de poner:
		git remote add origin URL dada por GitHub
	para referirme a GitHub se usará origin, sin embargo se puede
usar cualquier otro nombre

Luego:
		git pull origin master
Trae todo el contenido desde GitHub. Es decir clona el repositorio

		git push origin master
Enviamos los cambios a GitHub, con el parametro -u como por ejemplo 'git
push -u origin master' hace que recuerde los parametros, haciendo que la
próxima vez no los tengamos que poner. 'git stash' funciona para guardar
los cambios que llevamos antes de hacer 'push', luego con 'git stash
apply' para aplicar los cambios después.
Nota: Es recomendable hacer pull antes de hacer push, para de esta manera tener la copia más reciente del repositorio remoto.

* Otros comandos:
		git satus
podemos observar datos sobre que archivos han sido modificados y que
cambiarán en el repositorio en GitHub

		git log
Mostrará información acerca de los commits que se han hecho

		git log --summary
Más información que git log

		git diff HEAD
Mostrará la diferencia de el repositorio descargado con nuestro último
commit

		git reset archivo_ejemplo
Después de hacer un 'git add', si queremos quitar ese archivo del commit
utilizamos reset

		git checkout -- archivo_ejemplo
Deshace los cambios desde el último commit

		git checkout -b new_branch
Es para crear una "rama" y pasarse a esta imediatamente, es un sinónimo
de "git branch new_branch
git checkout new_branch"

		git rm archivo_ejemplo
Borra el archivo

		git rm -r archivo_ejemplo
Borra todos los archivos del folder

		git marge 'rama'
Une las dos ramas

		git branch -d clean_up
Al unir 2 ramas para borrar una de ellas se usa ese comando con el
parámetro -f se usa para eliminar una rama aunque

---------------------------------------------------------------------

Instrucciones de GitHub por mejorandola:
Link: https://github.com/Mejorandola/clase-de-github

Este es un ejemplo de Github para la comunidad de #mejorandola

Una vez instalas GIT, debes configurarlo:

git config --global user.name "Christian"
git config --global user.email "xxxxxx@xxxx.com"

Generando tu Public Key:

ssh-keygen

Leyendo tu llave para copiarla a Github:

cat ~/.ssh/id_rsa.pub

Arrancando tu proyecto:

git init

touch README

git add README

git commit -m "tu primer commit"

git push origin master

/************************************GIT desde 0 - Por
@klinsmannf****************************************/

<h3>Configuración</h3>
Descarga git para OSX

Descarga git para Windows

Descarga git para Linux

<h3>Crea un repositorio nuevo</h3>
crea un directorio nuevo, ábrelo y ejecuta
git init
para crear un repositorio de git nuevo.

<h3>Hacer checkout a un repositorio</h3>
crea una copia local del repositorio ejecutando
git clone /path/to/repository
al utilizar un servidor remoto, el comando será
git clone username@host:/path/to/repository

<h3>Flujo de trabajo</h3>
tu repositorio local esta compuesto por tres "árboles" administrados por
git. el primero es tu Directorio de trabajo el cual contiene los
archivos. el segundo es el Index el cual actua como un área intermedia y
finalmente el HEAD el cual apunta a el último commit realizado.

<h3>Comandos add & commit</h3>
Puedes proponer cambios (agregarlos a el Index) usando
git add <filename>
git add *
Este es el primer paso en el flujo de trabajo básico. Para en realidad
hacer commit a estos cambios usa
git commit -m "Commit message"
Ahora el archivo esta incluído en el HEAD, pero aún no en tu repositorio
remoto.

<h3>Envío de cambios</h3>
Tus cambios están ahora en el HEAD de tu copia local. Para enviar esos
cambios a tu repositorio remoto ejecuta
git push origin master
Reemplaza master por la rama a la cual desees enviar tus cambios.

Si no has clonado un repositorio existente y quieres conectar tu
repositorio a un repositorio remoto, necesitas agregarlo con
git remote add origin <server>
Ahora puede subir tus cambios al repositorio remoto selecionado
ramas
Las ramas son utilizadas para desarrollar funcionalidades aisladas unas
de otras. La rama master es la rama por "defecto" cuando creas un
repositorio. Usa otras ramas para el desarrollo y fusionalas de regreso
a la rama principal al terminar.

<h3>Crea una nueva rama llamada "feature_x" y cambiate a ella
usando:</h3>
git checkout -b feature_x
regresa a la rama principal
git checkout master
y borra la rama
git branch -d feature_x
una rama no está disponible para los demás a menos que subas (push) la
rama a tu repositorio remoto
git push origin <branch>

<h3>Actualiza & fusiona</h3>
para actualizar tu repositorio local al commit más nuevo, ejecuta
git pull
en tu directorio de trabajo fetch y merge cambios remotos.
para fusionar otra rama a tu rama activa (por ejemplo master), utiliza
git merge <branch>
en ambos casos git intenta auto fusionar cambios. Desafortunadamente,
esto no es posible todo el tiempo y resulta en conflictos. Tú eres
responsable de fusionar esos conflictos manualmente al editar los
archivos mostrados por git. Luego de modificarlos, necesitas marcarlos
como fusionados con
git add <filename>
antes de fusionar cambios, también puedes dar un vistazo previo usando
git diff <source_branch> <target_branch>

<h3>Etiquetas</h3>
es recomendado crear etiquetas para cada versión publicada de un
software. esto es un concepto conocido, el cual tambien existe en SVN.
Puedes crear una nueva etiqueta llamada 1.0.0 ejecutando
git tag 1.0.0 1b2e1d63ff
el 1b2e1d63ff se refiere a los 10 caracteres de el commit id al cual
quieres referirte con tu etiqueta. Puedes obtener el commit id con
git log
también puedes usar menos caracteres que el commit id, pero debe ser un
valor único.

<h3>Reemplaza cambios locales</h3>
En caso de que hagas algo malo (que de seguro nunca pasa ;) puedes
reemplazar cambios locales usando el comando
git checkout -- <filename>
esto reemplaza los cambios en tu árbol de trabajo con el último
contenido de HEAD. Los cambios que ya han sido agregados al índice, así
como también nuevos archivos, se mantendrán sin cambio.

Si por otro lado quieres deshacerte de todos los cambios locales y
commits, puedes traer la última versión del servidor y apuntar a tu
copia local principal de esta forma
git fetch origin
git reset --hard origin/master

<h3>Datos útiles</h3>
Interfaz gráfica por defecto
gitk
colores especiales para la consola
git config color.ui true
mostrar sólo una línea por cada commit en la traza
git config format.pretty oneline
agregar archivos de forma interactiva
git add -i

<h3>Enlaces & recursos</h3>
* Clientes gráficos
	GitX (L) (OSX, open source)
	Tower (OSX)
	Source Tree (OSX, free)
	GitHub for Mac (OSX, free)
* Guías
	Git Community Book
	Pro Git
	Think like a git
	GitHub Help
	A Visual Git Guide
Tutorial usando markdown