Mostrando entradas con la etiqueta git. Mostrar todas las entradas
Mostrando entradas con la etiqueta git. Mostrar todas las entradas

Git en Windows 10: Host key verification failed

Para solucionar el mensaje de error Host key verification failed haremos los siguientes pasos.

1)Lanzamos cmd y luego estos comandos
git config --global user.name "NOMBRE"
git config --global user.email "CORREOELECTRÓNICO"

2)Lanzamos shell de GIT.
Escribimos en el menú de "inicio git bash" para ejecutar el bash de git.
Generamos llave ssh y la copiamos al portapapeles de windows con los siguientes pasos:
ssh-keygen -t rsa -C "CORREOELECTRÓNICO"
clip  < ~/.ssh/id_rsa.pub

3) Registramos la llave en github, arriba a la derecha, donde sale nuestro icono de login. Pulsamos Setting y luego "SSH GPG keys".  La llave la teníamos en el portapapeles, pegamos y guardamos.



GIT: ejemplo de rebase

#Creamos directorio de prueba
 mkdir pruebarebase
 pruebarebase

#inicializar repositorio
 git init .

#añadir archivo 1 + commit
 echo "1" > 1.txt
 git add 1.txt
 git commit -m "1.txt"

#añadir archivo 2 + commit
 echo "2" > 2.txt
 git add 2.txt
 git commit -m "2.txt"

# rama nueva "feature"
 git checkout -b "feature"

# creación de archivo en rama "feature" + commit
 echo "feature" > feature.txt
 git add feature.txt
 git commit -m "feature.txt"

# modificación de archivo en rama "feature" + commit
 echo "feature_modificacion1" >> feature.txt
 git add feature.txt
 git commit -m "modificacion rama"

# cambiamos a la rama principal
 git checkout master


#añadir archivo 3 + commit
 echo "3" > 3.txt
 git add 3.txt
 git commit -m "3.txt"


Árbol hasta este punto:

         - f1 <- f2
       /
 1 <- 2 <--- 3
Queremos fusionar los dos commits de la rama "feature" en una sola, de modo que se mantenga la

Volvemos a la rama feature
git checkout feature

Hacemos un rebase interactivo, partimos del head -1
git rebase -i HEAD~1


en vez de pick ponemos squash en el archivo El árbol resultantes será este:
         - f1
       /
 1 <- 2 <--- 3
En f1 estaŕan los cambios de f1 y de f2

GIT: comando básicos

Configuración rápida

git config --global user.name "pollopolea"
git config --global user.email CORREO_ELECTRONICO

Básico

origin => rama remota, en el servidor del que se ha clonado

git pull => TRAER cambios del servidor

git fetch => hace un pull (trae los cambios) y un merge con lo que tenemos en local

git push => ENVIAR cambios locales al servidor

git mergetool => muestra la herramienta de resolución de conflictos ( normalmente el programa meld)

git branch --list => lista las ramas
git branch --list -r => lista las ramas y las remotas
git branch RAMA => crea la RAMA
git branch -b RAMA => crea la RAM y hace un checkout
git branch --contains ID_COMMIT => muestra la rama que contiene el ID_COMMIT

git checkout RAMA => cambia a la rama que necesitamos

git switch RAMA => cambia a la rama que necesitamos

git log --pretty=oneline --abbrev-commit  => muestra el log del git
 

INICIALIZAR REMOTO

git init
git clone  RUTAREMOTA
git remote add origin  RUTAREMOTA
 

git remote set-url RUTAREMOTANUEVA => reemplazar la RUTAREMOTA por una nueva

Actualizar repositorio FORK con los últimos cambios del original

Clonamos nuestro FORK, añadirmos el repositorio original del que hicimos el fork (uptream), traemos los cambios del repositorio upstream y hacemos un merge en local,  hacemos un push

git clone git@github.com:pollopolea/core.git
cd core
git remote add upstream https://github.com/owncloud/core.git
git fetch upstream
git pull upstream master
git push

Hacer un rebase

git rebase -i HEAD~1 => hace un rebase con el HEAD - 1 ( podemos poner también directamente el ID del commit) 
git rebase --abort  => aborta el rebase
git rebase --continue => continua un rebase ( normalmente tras solucionar conflictos)

Durante el rebase, con squash eliminamos un commit, que se une al anterior

Eliminar el límite de renombrado de archivos

git config merge.renameLimit 999999
git config --unset merge.renameLimit

gitForzar el cambio de HEAD en una RAMA

git checkout RAMA
git reset --hard IDENTIFICADOR_COMMIT

GIT: Mantener un fork actualizado en github

Supongmaos que hemos hecho un fork de un repositorio, y queremos que los cambios del repositorio original se guarden en el nuestro. Para sincronizarlos tenemos que hacer lo siguiente.

1- Clonamos en local nuestro repositorio con el fork

git clone git@github.com:USUARIO/REPOSITORIO-FORK.git

2. Añadimos el remoto desde el el repositorio original en nuestro repositorio fork:

cd DirectorioRepositorioFork
git remote add upstream git://github.com/DESARROLADOR-ORIGINAL/REPOSITORIO.git
git fetch upstream

3. Actualizamos el fork con el repositorio original para tener los cambios actualizados

git pull upstream master


4. Subimos los cambios a nuestro fork

git push origin master

Ejemplo concreto:
git clone git@github.com:pollopolea/core.git
cd core
git remote add upstream https://github.com/owncloud/core.git
git fetch upstream

git pull upstream master
git push