Como subir un proyecto local a github.


Ver las imágenes de origen

GitHub es una plataforma de desarrollo colaborativo para alojar proyectos utilizando el sistema de control de versiones Git. Se utiliza principalmente para la creación de código fuente de programas de ordenador. El software que opera GitHub fue escrito en Ruby on Rails. Desde enero de 2010, GitHub opera bajo el nombre de GitHub, Inc. Anteriormente era conocida como Logical Awesome LLC. El código de los proyectos alojados en GitHub se almacena típicamente de forma pública.

El 4 de junio de 2018 Microsoft compró GitHub por la cantidad de 7500 millones de dólares,​ al inicio el cambio de propietario generó preocupaciones y la salida de algunos proyectos de este repositorio, sin embargo no fueron representativos. GitHub continúa siendo la plataforma más importante de colaboración para proyectos Open Source

Para crear un proyecto desde Github hay al menos dos formas de hacerlo

  • Desde el propio site de Gitub
  • Desde linea de comandos

Crear un proyecto desde la web de github

Creamos un nuevo repositorio en https://github.com. Le damos nombre, descripción, seleccionamos si va a ser un proyecto publico o privado si es el caso, y dejamos el check de crear README sin marcar. Le damos a crear repositorio y con esto ya tenemos el repositorio donde alojaremos nuestro proyecto.

Crear un proyecto desde la terminal del equipo donde esta el proyecto que queremos subir a github

Nos vamos a la carpeta del proyecto y ejecutamos estos comandos.

git init

git add .

git commit -m "first commit"

git remote add origin https://github.com/NOMBRE_USUARIO/NOMBRE_PROYECTO.git

git push -u origin master


Ver las imágenes de origen

Trucos

para eliminar ficheros al hacer push en vez de
git add .
usar
git add -u

para deshacer un git add .
git reset
si seguido de git commit ...
git reset HEAD~
para deshacer varios commit locales que no han sido pushedados:
git reset --hard <codigo del commit>
para obtener el codigo hacer:
git log
para salir del log pulsa q

ERRORES

Ese error que te arroja se refiere a que tu rama remota -alojada en github- posee contenido que tu rama local no contiene.

Si quieres ir un paso más allá y no deseas que se cree ese commit merge automático, existe un método parecido que te crea una estructura de ramas ligeramente diferente, lineal. (Pierdes la trazabilidad de las fusiones de ramas, así que no se recomienda en exceso cuando es trabajo colaborativo… vamos, que hay que saber utilizarlo).

git fetch
git rebase origin/master
git push

Fetch: te trae todos los cambios sin integrarlos (pull los integra, fetch sólo da constancia a tu repositorio local de que en la rama oculta origin/master existe determinado commit). Ósea, digamos que abres ese árbol pero en local, y tu rama de trabajo sigue apuntando a tu commit local y la rama origin/master a los contenidos bajados del remoto. En tu rama de trabajo local no tendrás integrados esos contenidos remotos que sí existen en la rama origin/master.
rebase origin/master : apuntas a origin como nuevo punto inicial para tu rama e integras los cambios de tu commit local. (Si existen conflictos, tendrás que resolverlos)
push : subes esa integración. No se sube tu commit local original, sino la mezcla de ambos.

Dejando una estructura similar a esta, todos al mismo nivel:

º Commit X (previo commit al error)
º Commit 1 (el que existe en remoto y no tienes en local)
º Commit 3 (el merge de commit 1 + tu commit local)

image

Con el ejemplo del gráfico, tu local es el color verde; has seguido desarrollando, mientras paralelamente en la rama azul (remoto) existen otros cambios que no posees.

Como indica el error, te sugiere que primero integres esos cambios en tu rama local, haciendo un git pull.
Si integras los cambios y si no existen conflictos a corregir, se creará automáticamente un último commit con el merge de ambas ramas. Si existen conflictos -te lo indicará- deberás resolverlos antes y luego se creará el commit de merge. Tras ello podrás hacer un git push sin problema.

Eso dejará una estructura de ramas similar a esto (imagínate el commit X abriéndose en 2 y volviéndose a cerrar al llegar al commit merge).

º Commit X (previo commit al error)
ºº Commit 1 (el que existe en remoto y no tienes en local)
ºº Commit 2 (el que existe en local y contiene commit X, pero no commit 1)
º Commit 3 (el merge de commit 1 + commit 2)

image

Como subir un proyecto local a github.


GitHub es una plataforma de desarrollo colaborativo para alojar proyectos utilizando el sistema de control de versiones Git. Se utiliza principalmente para la creación de código fuente de programas de ordenador. El software que opera GitHub fue escrito en Ruby on Rails. Desde enero de 2010, GitHub opera bajo el nombre de GitHub, Inc. Anteriormente era conocida como Logical Awesome LLC. El código de los proyectos alojados en GitHub se almacena típicamente de forma pública.

El 4 de junio de 2018 Microsoft compró GitHub por la cantidad de 7500 millones de dólares,​ al inicio el cambio de propietario generó preocupaciones y la salida de algunos proyectos de este repositorio, sin embargo no fueron representativos. GitHub continúa siendo la plataforma más importante de colaboración para proyectos Open Source

Para subir un proyecto en Github hay al menos dos maneras de hacerlo

  • Desde el interfaz grafico de la web de github
  • Desde linea de comandos

Crear un prooyecto desde la web de Github

Creamos un nuevo repositorio en https://github.com. Le damos nombre, descripción, seleccionamos si va a ser un proyecto publico o privado si es el caso, y dejamos el check de crear README sin marcar. Le damos a crear repositorio y con esto ya tenemos el repositorio donde alojaremos nuestro proyecto.

Crear un proyecto desde la terminal del equipo donde esta el proyecto que queremos subir a github

Nos vamos a la carpeta del proyecto y ejecutamos estos comandos.

git init

git add .

git commit -m "first commit"

git remote add origin https://github.com/NOMBRE_USUARIO/NOMBRE_PROYECTO.git

git push -u origin master

Algunos trucos que nos pueden ayudar

  • Para eliminar ficheros al hacer push en vez degit add .usar
    git add -u
  • para deshacer un git add .
    git reset
    si seguido de git commit ...
    git reset HEAD~
  • Para deshacer varios commit locales que no han sido pushedados:
    git reset --hard <codigo del commit>
    Para obtener el codigo hacer:
    git log
    Para salir del log pulsa q

Pequeño tutorial cortesia de volta2016 para uso en terminales linux

CONFIGURACIÓN PROYECTO CON GIT

*Siempre al empezar un proyecto primero primero inspecciono los elementos :
ls
Luego cd Desktop – y me ubico en la carpeta del proyecto en la cual voy a trabajar
git —version
git config —global user.name “Volta”
git config —global user.email “[email protected]

$ git –version

                $ git config --global user.name "TU NOMBRE"

                $ git config --global user.email "TU CORREO DE GITHUB"

                $ git config --global --list

                $ git help [comando a buscar]

*Siempre al empezar un proyecto primero primero inspecciono los elementos :
ls
Luego cd Desktop – y me ubico en la carpeta del proyecto en la cual voy a trabajar
Una vez ubicado en el Desktop inspecciono la carpeta del proyecto
cd proyecto web

*clear es para ir borrando todo
git add -A
Primer commit git commit -m “archivos de proyecto instalados
Git log : me muestra Historial del proyecto con los datos del usuario

*Una vez comienzo a editar con el editor de texto puede ser “sublime o atom”
Aplico git status para ver que cambio hay, en que archivo y puedo comentar directamente
git commit–m “cambios de footer”
puedo preparar un archivo con git add “nombre del archivo
git commit “nombre del archivo” —amend

  1. git init -> crea el repositorio en local que es un directorio .git que contiene todo el historial
  2. git status ->para ver que esta en el repo y que no
  3. git add [archivos] -> stagin area, preparar lo que sera el commit
  4. git add –A ->alista todos los archivos para el commit (agrega todos los archivos de golpe)
  5. git commit–m «que es estecommit» -> crea el commit y queda agregado al historial del repo

Git y git hub
cd para llamar la carpeta
Ls para ver la lista
Git ini para comenzar

  • git help te muestra como funciona los parapeto es un parámetro
  • git help commit

git config –list para revisar listado
git help add commit

  1. git init –> crea el repositorio en local que es un directorio .git que contiene todo el historial
  2. git status ->para ver que esta en el repo y que no
  3. git add [archivos] -> stagin area, preparar lo que sera el commit
  4. git add -A ->alista todos los archivos para el commit
  5. git commit–m «que es estecommit» -> crea el commit y queda agregado al historial del repo

*git status te muestra en rojo los cambios del código en el html

git status te muestra que archivos puedes ir guardando
git add -A lista todo los archivos
git log
git superlog

RAMAS
git commit -am “commit nuevo” rama experimental

BORRAR
git reset borra todo el proyecto
git reset —hard “mas el ID del commit de ahi hacia arriba borra todo, si borro de arriba hacia bajo vuelve a los commit anteriores, si borro de abajo hacia arriba borra todo ejemplo ultimo de ID “
git add -A guardar
git commit -m “123”
git log

git reset mix recopila todos recopilo todos los commit y el e iguala el repositorio con el standing area
Y en vez de tener 3 commit creado recopila todo en 1

git reset soft hace cambio solo en repositorio pero iguala el standing con el working siempre se trabaja con el commit base git rest commit directamente el mix hay preparar los archivos para los commit en soft están todos los archivos preparados para el comino

git checkout viaja en ele tiempo pegas el commit ID

[email protected]
git init crear nuestro primer repositorio

git add subir uno a uno al work staging area git add – nombre del archivo

CUANDO REALIZO CAMBIOS en el html
git status

Giovannis-MBP:platzigit-master volta$ git status
On branch master
Changes not staged for commit:
(use "git add …" to update what will be committed)
(use "git checkout -- …" to discard changes in working directory)
modified:   index.html
no changes added to commit (use "git add" and/or "git commit -a")
Giovannis-MBP:platzigit-master volta$

Al cambio del index.html realizado o pagina x .html debemos agregar los siguientes después de darle git status
para integración básica
git add index.html
git commit -m “cambios Nombre y descripción”

git log ” te permite ver el nombre del la carpeta del proyecto el autor la fecha de commit y más
Variantes de comando de git log
git log — online te muestra el “sin detalles el commit id con el titulo”
git log — decorate “te muestra en que punto estas con head”
git log —online —graph
git log —stat “numero de linea que se editaron, cuales fueron los cambios a nivel de archivo”
git log -p “muestra los cambios y cuales fueron los cambios a nivel de código”
git shortlog “puedes ver en que esta trabajando cada desarrollador muestra los commit”
git log —prety=format

log –graph –abbrev-commit –decorate –date=relative –format=format:’%C(bold blue)%h%C(reset) – %C(bold green)(%ar)%C(reset) %C(white)%s%C(reset) %C(dim white)- %an%C(reset)%C(bold yellow)%d%C(reset)’ –all

GIT HUB AVANZADO

cd Desktop , luego ls , cd platzigit-master, ls vemos los archivos .

git config —global alias.superlog
git status
git add -A , agregar todos los archivos
git commit -m “0” agrega todos los archivos

git log para ver los commit
git super log
git checkout -b experimental – “ para crear ramas y entrar en ellas “

PARA AGREGAR COMMIT
Iteración básica es para agregar archivos
archivo 1.txt
git add -A
git commit -m “1”

archivo 2.txt
git add -A
git commit -m “2”

archivo 3.txt
git add -A
git commit -m “3”

RAMAS
para crear una rama
1-.git checkout -b “experimental”

git branch “nombre de la rama”

git log para ver las commit ramas y features del master

HEAD ES LA ubicación donde uno esta programando.

Git merge

Para fusionar ramas
git merge experimental

Va a fusionar la rama experimental pero quiero que le coloques un nombre
PULSAR LA TECLA O , UNA VEZ COLOCAS EL NOMBRE ESC :X QUE ES CERRAR Y GUARDAR

PARA VER COMMIT

Luego
git superlog
git log
para restificación de commit de estar seguro y que sea el ultimo
Git commit -am “descripción cambiada” —amend

BORRAR RAMAS

git branch -d experimental

Merge crea un nuevo commit con los cambios de las ramas que estás fusionando.

Rebase se «trae» los cambios de la otra rama (Master) y los fusiona con los suyos.

git branch “para ver las ramas”

FUSIÓN

solucionar el conflicto , con git status vemos el archivo en rojo luego esta en rojo apene hay que subirlo a
Luego git add -A
Git status
Git commit -m “Fusión realizada”

REINICIAR PROYECTO

Entrar a las carpetas ocultas ls -la
La git guarda el proyecto en una carpeta y el registro lo tiene una carpeta llamada .git
Con el siguiente comando puedes eliminarla: rm – rf
ls -la para ver todo el repositorio

git checkout master es para volver atrás de un cambio en alguna rama

git merge “para la fusión” decidir con que titulo queda o modificación
Despues comentas interacción básica fusión ejecutada

se puede hacer un reset –hard
al inicio del proyecto o commit inicial sin tener el id del commit de esta forma:
git fetch origin
git reset –hard origin/master

REBASE

En las fusiones se crea un solo commit
En rebase pasa esto : a-b se colocan antes del commit de master
Por ejemplo si vuelvo mi ejemplo a git checkout master vuelven deprecar los commit de la rama del rebase a – b vuelves atrás “por que master esta en el commit con nombre cuarto” como subirlo:
git merge rama rebase

Ramarebase va acompañado de merge se va atacando de varias formas , cuando trabajas con rebase tienen que hacer “merge” git merge rama rebase
Crear ramas git checkout -b “nombre de la rama”

PARA CLONAR

cd ubico Desktop
git clone y el link en HTTPS. https://github.com/github/gemoji.git

LLAVE SSH RSA COMO ALGORITMO

$ ssh-keygen -t rsa -b 4096 -C «[email de GitHub]»

            Dar enter. Aceptar la localización por defecto.

            Contraseña.

            $ cd  ~/.ssh

            $ cat id_rsa.pub

            Copiamos la llave y la pegamos en Settings > SSH, dentro de GitHub.

Resumen

ssh-keygen -t rsa -b 4096 -C «poner aquí correo electrónico»

cat id_rsa.pub

Pegas el código y vuelvo al escritorio

WORK GITHUB
Creo la carpeta mkdri nombre carpeta
Entro a la carpeta con cd
git init
Agrego el primer archivo: touch 1.txt
git remote add origin “nombre del repositorio remoto

git push origin master
Para retomar proyecto
*desarrollamos
git fetch origin “refresh actualization del remoto”
git merge origin/master
git push origin master

Cued realizas fetch no cae en la rama master “ la local “ si no cae en origin master rama escondida
Luego de placa una fusión : git merge origin/master

PROCESO DE REPOSITORIOS “FORKED”
Pasos en orden

Crear ó entrar a la carpeta del proyecto cd
git init

    git remote add origin [HTTPS ó SSH del proyecto forked]
git remote add upstream [HTTPS ó SSH del proyecto principal]
git fetch upstream
git merge origin/upstream   “como conectamos la rama del repositorio original”
git fetch origin
git merge origin/master
Hacer cambios en local
git fetch upstream.            “Ramas escondidas “
git merge origin/upstream
git push origin master

http://git.miguelnieva.com/#/273

TESTING
Travis-ci.org
https://trello.com/b/EceUgtCL/ghost-roadmap