git chuleta
propósito
- chuleta propia sobre git
comandos
git add
- La forma más fácil de guardar todos los cambios tanto las modificaciones como los borrados y archivos añadidos en el árbol de trabajo es
git add -A
git amend
- para añadir uno o varios archivos a un commit y mantener el mensaje
git commit -m 'initial commit'
git add <nombreFicheroOlvidado>
git commit --amend
git branch
- la rama en la que estas
git branch
* gh-pages
- con -a salen todas las ramas no solo las remotas
-r
-vv
verbose
doble con toda la información
c:\proyectos\hugo\javier-programacion>git branch -a -vv
* master bf44f57 [origin/master] el log de 22/04/2018
remotes/origin/HEAD -> origin/master
remotes/origin/master bf44f57 el log de 22/04/2018
- atención a la diferencia entre rama y remoto
- para este proyecto en concreto tengo solo una rama que es
master
pero que puede sergh-pages
en otros repositorios - este repositorio local esta conectado con un repositorio remoto llamado
origin
- cuando hago un
push
indico primero a que remoto subo que rama git push origin master
origin
es el alias que se le da al repositorio remoto al hacergit remote add origin .....
- pero podría tener más alias a repositorios remotos
rama oculta
- con
git branch -a
- sale una rama oculta que se usa cuando se lanza
git fetch
antes de hacer un merge - cuando se hace
git pull
se lanza ungit fetch
y ungit merge
- esta rama oculta también se usa lógicamente para saber que cambios cargarías a la rama local cuando se hace un
git pull
crear rama
git branch master
git checkout
- cambia la rama activa del repositorio y deja el contenido de la rama actual en el directorio de trabajo
C:\cursos\miriadax\git_github\cal_2com>git branch -a
inverse
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
C:\cursos\miriadax\git_github\cal_2com>git checkout inverse
Switched to branch 'inverse'
C:\cursos\miriadax\git_github\cal_2com>git branch -a
* inverse
master
remotes/origin/HEAD -> origin/master
remotes/origin/master
git diff
- muestra los cambios que no están preparados es decir añadidos con
git add
git diff
diff --git a/gitChuleta.md b/gitChuleta.mindex a4ee01d..441188e 100644
--- a/gitChuleta.md
+++ b/gitChuleta.md
@@ -52,7 +52,11 @@ en git 2.x almacena también los borrados
git reset --hard
Please, commit your changes or stash them before you can merge.
con
git diff --cached
puedes ver los cambios que llevas preparados hasta ahorauna explicación más completa en la documentación de
git-scm
git grep
- para buscar una palabra en el repositiorio
- a explorar con ejemplos
git log
- muestra el historial de
commits
git log --oneline
- muestra la información en una sola línea
git log
- una entrada de blog sobre esto
- la salida con formato
git log --pretty=format:"%h - %an, %ar : %s"
- crear un alias para un fomato chulo
git config --global alias.lg "log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit"
- luego se puede usar
git lg
ogit lg -p
para ver las diferencias
git pull
- para actualizar la copia local con el repositorio remoto
git pull
C:\nube\MEGA\mundo>git pull
remote: Counting objects: 3, done.
remote: Compressing objes: 100% (3/3), done.
remote: Total 3 (delta 2), reused 0 (delta 0), pack-reused 0
Unpacking objects: 10 (3/3), done.
From https://github.com/pelos6/mundo
a56588c..0d8d6f gh-pages -> origin/gh-pages
Updating a56588c..0d8d6f3
Fast-forward
miMundo.html | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
- para saber que recuperaríamos con
git pull
-- sobre el proyecto notas-programacion
git fetch origin
git diff origin/gh-pages --name-only
la opción
--name-only
muestra solo el nombre del archivo modificadoorigen de esta información
donde
gh-pages
es la rama con la que trabajamos en local y que subimos y descargamos del repositorio remotoorigin
git fetch
baja los cambios a una rama oculta y desde allí se consulta
git push
- La opción -u es la misma que
–set-upstream-to.
y sirve para indicar cual es el destino remoto por defecto
forzar un push para sobrescribir el remote
- si quiere que los cambio en local tengan prioridad sobre los del remoto
- -f de
force
- -f de
git push -f bitbucket master
git remote
- muestra la información de los repositorios remotos a los que estan conectado
git version
git --version
- git versión 2.10.2.windows.1
git config
- se puede editar directamente
[core]
repositoryformatversion = 0
filemode = false
bare = false
logallrefupdates = true
symlinks = false
ignorecase = true
[remote "origin"]
url = https://javieriranzo3:xxxxxxxx@bitbucket.org/javieriranzo3/javier-programacion.git
fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
remote = origin
merge = refs/heads/master
git config --list
core.symlinks=false
core.autocrlf=true
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt
diff.astextplain.textconv=astextplain
rebase.autosquash=true
credential.helper=manager
user.name=pelos6
user.email=javieriranzo@hotmail.com
gui.recentrepo=C:/nube/MEGA/programacion/git/first-contributions
gui.recentrepo=C:/proyectosGit/my_project
gui.recentrepo=C:/servidorGit
gui.recentrepo=C:/proyectosGit/prueba.git
gui.recentrepo=C:/nube/MEGA/programacion/HtmlCssEstatico/jekyll/notas-programacion
http.postbuffer=157286400
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
remote.origin.url=https://javieriranzo3:pelos678@bitbucket.org/javieriranzo3/notas-programacion.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.gh-pages.remote=origin
branch.gh-pages.merge=refs/heads/gh-pages
gui.encoding=utf-8
gui.wmstate=zoomed
gui.geometry=584x210+104+104 483 430
- para poner la contraseña por ejemplo
paginador
core.pager
El parámetro
core.pager
selecciona el paginador utilizado por Git cuando muestra resultados de comandos tales como ‘log’ odiff
. Puedes ajustarlo para que utilice ‘more’ o tu paginador favorito, (por defecto, se utilizaless
); o puedes anular la paginación si le asignas una cadena vacía.
git config --global core.pager ''
- Si lanzas esto, Git mostrará siempre el resultado completo de todos los comandos, independientemente de lo largo que sea este.
de
less
se sale conq
en modo dos puntosesto explica el problema con
diff
ylog
otra solución es sacar el resultado del comando a un fichero y consultarlo luego
git diff > diff.md
recuperar un archivo borrado
- sacado de este blog
git log --oneline --name-status --diff-filter=D -- **/figueras15entloIzdaInquilinos
- falta saber como salir de la edición
- se sale con
q
simplemente
- se sale con
- para recuperar un archivo borrado de un repositorio git
- primero encuentro en que commit se borro
git log --diff-filter=D --summary > aborrar.txt
- en aborrar puedo buscar el archivo y la información del commit
- luego ese commit lo descargo en un zip …
- origen de la información
- primero encuentro en que commit se borro
grafico de commits
- para sacar un gráfico rudimentario de
commits
git log --oneline --graph --all
| * e765511 automatico notas-programacion
| * 90fd75f Merge branch 'gh-pages' of https://bitbucket.org/javieriranzo3/notas-programacion into gh-pages
| |\
| * | 073b5f7 automatico notas-programacion
* | | 9d962d6 automatico notas-programacion
| |/
|/|
* | 4fe3c1c automatico notas-programacion
* | d902fb8 para probar el stat
|/
* a8515be automatico notas-programacion
- para todas las ramas con
--all
borra el gestor de contraseñas
- es molesto cuando tienes varios usuarios
- lanzarlo como administrador del equipo
- origen
git config --system --unset credential.helper
.gitignore
- para entender los patrones buen post en castellano
- para ver los archivos que son ignorados por git al estar en el archivo
.gitignore
git ls-files --other --ignored --exclude-standard
- salen los archivos que a pesar de haber sido modificados o añadidos no serán tratados por git
- para evitar que git use unos archivo o directorios
- información útil
- otro enlace de github
recuperar un archivo de un commit anterior
- primero para ver que
commits
hemos hecho git log --oneline
- una vez encontrado el commit usamos su valor
sha1
para la siguiente instrucción git checkout b6a56c7 hola.md
- donde
b6a56c7
es la etiqueta sha1 del commit yhola.md
es el fichero que queremos recuperar- en ese momento el archivo
hola.md
que teníamos en la copia de trabajo se habrá sustituido por el que teníamos en el commit seleccionado
- en ese momento el archivo
ejemplo
- he perdido en el directorio de trabajo de mi portatil un script del proyecto TEST-EPCAF
- en el repositorio remoto en bitbucket aún lo tengo
- el último commit es aa43d09
C:\proyectos\TEST-EPACF>git log --oneline
aa43d09 (HEAD -> master, origin/master) automatico TEST-EPACF26/03/2019
c32cca1 automático TEST-EPACF23/03/2019
a7e98b0 automático TEST-EPACF23/03/2019
git checkout aa43d09 test-epacf/Scripts/LOGIN-EPACF-ADM/Script1552513941793.groovy
C:\proyectos\TEST-EPACF>git checkout aa43d09 test-epacf/Scripts/LOGIN-EPACF-ADM/Script1552513941793.groovy
error: pathspec 'test-epacf/Scripts/LOGIN-EPACF-ADM/Script1552513941793.groovy' did not match any file(s) known to
- al final hago un clone y recupero los archivos :-1
recuperar un archivo de un commit anterior proceso largo
- sacar con
git cat
el contenido de un fichero de un commit anterior- antes descubrir el sha1 de ese fichero
- listado de
commits
formateado
git log --pretty=format:"%h - %an, %ar : %s"
fa26c31 - pelos6, 24 hours ago : automatico notas-programacion
51e855b - pelos6, 2 days ago : automatico notas-programacion
2e9e1f5 - pelos6, 2 days ago : motivo: para probar la plantilla de mensaje soluciona: una prueba
b56fc49 - javier iranzo, 2 days ago : automatico notas-programacion
271bee1 - pelos6, 2 days ago : automatico notas-programacion
236f9d9 - javier iranzo, 3 days ago : automatico notas-programacion
0a9ee5f - pelos6, 3 days ago : automatico notas-programacion
elegimos el commit del que queremos recuperar un archivo seleccionando el valor hash
0a9ee5f
sacamos la información de ese commit
C:\nube\MEGA\programacion\HtmlCssEstatico\jekyll\notas-programacion>git cat-file -p 0a9ee5f
tree 18cd7487cea13fc35c50360d539d7e153d925802
parent 40c1d8e4a7db0379389799a6513957a732920695
author pelos6 <javieriranzo@hotmail.com> 1505362837 +0200
committer pelos6 <javieriranzo@hotmail.com> 1505362837 +0200
automatico notas-programacion
- ahora del
tree
que es el árbol de archivos afectados por ese commit
C:\nube\MEGA\programacion\HtmlCssEstatico\jekyll\notas-programacion>git cat-file -p 18cd7487ce
100644 blob e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 .code-workspace
100644 blob 716215a8a011601f4174d355ac35ba0ecec58793 .gitignore
100644 blob ce072115b8eeaf3686c2df5cc7da6d42cb5c2242 .markdownlint.json
040000 tree 5275505c9573a166daf13fbca7b7db10d6da4fa3 .vscode
100644 blob 42586b1b40881abdd0ac6166be6329a9dfdb7a89 Gemfile
100644 blob 9df0e71963ef5cbd82da90346e43b36d90e83498 LICENSE.txt
100644 blob f549328aaea75b1a969d2628ef1089de15e88502 README.md
100644 blob fb568f1ce9d61a0fa26e7c263bddbe6886d6f961 _config.yml
- y por fin del archivo que queremos
C:\nube\MEGA\programacion\HtmlCssEstatico\jekyll\notas-programacion>git cat-file -p fb568f1ce9
site-version: v286
# Welcome to Jekyll!
#
# This config file is meant for settings that affect your whole blog, values
# which you are expected to set up once and rarely edit after that. If you find
# yourself editing these this file very often, consider using Jekyll's data files
# feature for the data you need to update frequently.
interfaz gráfico
gitk
- forma parte de
Git Gui
- forma parte de
plantilla de commit
- para tener un formato unificado de commit se puede usar una plantilla
- escribir un fichero y enlazarlo en la configuración de git
- se puede configurar de forma global o solo para el repositorio (recomendado)
git config commit.template para-commit.md
- se abre el editor por defecto que es
vi
- para cambiar el editor por defecto
git config --global core.editor notepad
- se lanza
git commit
lo que abrenotepad
con la plantilla - al guardar el editor se finaliza el commit
- si se lanza
git commit -m "mensaje de commit"
no se usa la plantilla
inicio repositorio en gitHub
- primero se crea la el repositorio en GitHub
echo "# olddognewtricks" >> README.md
git init
git add add -A
git commit -m "first commit"
git remote add origin https://github.com/javieriranzo3/olddognewtricks.git
git push -u origin master
secuencia habitual de confirmación
git add -A
git commit -m "mensaje del commit"
git push origin master
git add -A
- en git 1.x almacena todos los archivos ya sean nuevos, modificados o borrados
- en git 2.x también
- git add .
- en git 1.x almacena todos los archivos ya sean nuevos o modificados no los borrados
- en git 2.x almacena también los borrados
- git push
- origin es el alias que hemos puesto al repositorio remoto con
git add remote
- master suele ser la rama en el repositorio remoto pero puede ser gh-pages para esta documentación
- origin es el alias que hemos puesto al repositorio remoto con
secuencia habitual al inicio
git status
git remote -v
git branch -a -vv
git fetch origin
git branch -a -vv
git diff
- a completar con casos reales
deshacer unos cambios
- al hacer
git pull
me sale este mensaje
error: Your local changes to the following files would be overwritten by merge:
_posts/2017-05-02-bitacora.md
Please commit your changes or stash them before you mer.
Aborting
- para ver lo que pasa lanzo
git status
C:\DATOS\javier\notas-programacion>c:\portables\PortableGit\bin\git status
On branch gh-pages
Your branch is behind 'origin/gh-pages' by 1 commit, and can be fast-forwarded.
(use "git pull" to update your local branch)
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: _posts/2017-05-02-bitacora.md
- esto se soluciona con
C:\DATOS\javier\notas-programacion>c:\portables\PortableGit\bin\git checkout _posts/2017-05-02-bitacora.md
C:\DATOS\javier\notas-programacion>c:\portables\portableGit\bin\git status
On branch gh-pages
Your branch is behind 'origin/gh-pages' by 2 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
nothing to commit, working tree clean
para ver el historial de cambios de un archivo
git log -p C:\Proyectos\eprem\src\java\es\aragon\eprem\struts\actions\DispatcherMenuAplicacionAction.java
# otro más gráfico y mejor
gitk C:\Proyectos\eprem\src\java\es\aragon\eprem\struts\actions\DispatcherMenuAplicacionAction.java
para ver las diferencias entre un archivo concreto
git diff remotes/origin/gh-pages:pages/tutoriales/PADDOC-EPACF.md gh-pages:pages/tutoriales/PADDOC-EPACF.md
- la información de la rama oculta es la que sale con el comando
git branch -a
diferencias con remote
- la clave para entender esto es la rama oculta que se actualiza con
git fetch
por eso si no se lanza este comando no es coherente la información que obtenemos- información en git pull
- del comando se sale con
q
repositorios remotos
- para ver la
url
git remote -v
git y sublime text 3
- parece que al instalar el package en sublime algo se modifica en la configuración con el paquete de
markdownpreview
no coge la plantilla. - tengo que quitar el
package
git y volver a abrir sublime ..!!!
warning: LF will be replaced by CRLF in Gemfile.lock
- en esta página
- proponen una solución
git config --local core.autocrlf false
- esto provocaba un despliegue erróneo en Aerobatic
Your Gemfile.lock is corrupt. The followg gem is missing from the DEPENDENCIES section: 'ffi'
Version failed with error: Process bundle failed with code 20 code=20
- así ya no sale el mensaje al hacer git
add -A
pero el despliegue sigue dando el mismo problema - pruebo a solucionarlo borrando
Gemfile.lock
en la copia local - primero paro Jekyll
- luego borro
Gemfile.lock
- fuerzo un cambio
- el despliegue se queda en
queue
- a esperar !!!
- Ahora meto en
.gitingnore
aGemfile.lock
para limpiar la caché
git rm -r --cached .
clonar una versión de un commit anterior
- han desaparecido varios archivos de un repositorio y no se porque
- para recuperarlos …
- creo un directorio
http://es.stackoverflow.com/questions/1458/regresar-un-repositorio-a-un-commit-especifico
mkdir recuperacion
cd recuperacion
git clone https://github.com/pelos6/notas-programacion.git
cd notas-programacion
git log
- esto te extrae los últimos
commits
con las fechas y el hash 395507f
este es el que buscogit checkout 395507f
- no confundir con el número más largo
git checkout 0cfadb06391b16fb620978c155193ba289507210
- luego copio todos los
*.md
y digo que no quiero que se sobrescriban los que ya están.
git creando un servidor en local
c:\servidorGit>git clone --bare https://github.com/pelos6/aplicacionBase.git my_project.g
c:\servidorGit\my_project.git>git remote
origin https://github.com/pelos6/aplicacionBase.git (fetch)
origin https://github.com/pelos6/aplicacionBase.git (push)
c:\servidorGit>tree
Listado de rutas de carpetas para el volumen Acer
El número de serie del volumen es 00000200 22C7:ADBD
C:.
└───my_project.git
├───hooks
├───info
├───objects
│ ├───info
│ └───pack
└───refs
├───heads
└───tags
C:\SERVIDORGIT\.GIT
├───hooks
├───info
├───objects
│ ├───4b
│ ├───info
│ └───pack
└───refs
├───heads
└───tags
c:\servidorGit>
C:\proyectosGit>git clone c:/servidorGit/my_project.git
Cloning into 'my_project'...
done.
Checking out files: 100% (836/836), done.
C:\proyectosGit\my_project>git remote -v
origin c:/servidorGit/my_project.git (fetch)
origin c:/servidorGit/my_project.git (push)
secuencia de actuación
- el comando que dicen en los tutoriales
git init --bare
c:\servidorGit>git init --bare primer-proyecto
- he tenido que renombrar el directorio de
primer-proyecto
aprimer-proyecto.git
c:\servidorGit>git init --bare primer-proyecto.git
c:\proyectosGit>git clone c:\servidorGit\primer-proyecto primer-proyecto
c:\proyectosGit\primer-proyecto>git remote -v
origin c:\servidorGit\primer-proyecto (fetch)
origin c:\servidorGit\primer-proyecto (push)
c:\proyectosGit\primer-proyecto>echo hola mundo > hola.md
c:\proyectosGit\primer-proyecto>git add -A
c:\proyectosGit\primer-proyecto>git commit -m "hola"
[master (root-commit) eae07ce] hola
1 file changed, 1 insertion(+)
create mode 100644 hola.md
c:\proyectosGit\primer-proyecto>git push origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 219 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To c:\servidorGit\primer-proyecto
* [new branch] master -> master
c:\proyectosGit>git clone c:\servidorGit\primer-proyecto.git primer-proyecto-clonado
Cloning into 'primer-proyecto-clonado'...
fatal: 'c:\servidorGit\primer-proyecto.git' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
c:\proyectosGit>git clone c:\servidorGit\primer-proyecto.git primer-proyecto-clonado
Cloning into 'primer-proyecto-clonado'...
done.
c:\proyectosGit>cd primer-proyecto-clonado
c:\proyectosGit\primer-proyecto-clonado>dir
El volumen de la unidad C es Acer
El número de serie del volumen es: 22C7-ADBD
Directorio de c:\proyectosGit\primer-proyecto-clonado
22/07/2017 20:58 <DIR> .
22/07/2017 20:58 <DIR> ..
22/07/2017 20:58 13 hola.md
1 archivos 13 bytes
2 dirs 542.763.098.112 bytes libres
- parece que es necesario para clonar que el directorio tenga la extensión
.git
pero sin embargo el remote deprimer-proyecto
sale sin esa extensión
c:\proyectosGit\primer-proyecto>git remote -v
origin c:\servidorGit\primer-proyecto (fetch)
origin c:\servidorGit\primer-proyecto (push)
c:\proyectosGit\primer-proyecto>cd ..\primer-proyecto-clonado
c:\proyectosGit\primer-proyecto-clonado>git remote -v
origin c:\servidorGit\primer-proyecto.git (fetch)
origin c:\servidorGit\primer-proyecto.git (push)
- a pesar de esa incoherencia puedo hacer
pull
ypush
entre los dos repositorios clonados contra el mismo servidor
referencia de Hostinger
- git config
- Uno de los comandos más usados en git es git config, que puede ser usado para establecer una configuración específica de usuario, como sería el caso del email, un algoritmo preferido para diff, nombre de usuario y tipo de formato, etc… Por ejemplo, el siguiente comando se usa para establecer
- git init
- Este comando se usa para crear un nuevo repertorio GIT:
- git add
- Este comando puede ser usado para agregar archivos al index. Por ejemplo, el siguiente comando agrega un nombre de archivo temp.txt
- git clone
- Este comando se usa con el propósito de revisar repertorios.
- git commit
- El comando commit es usado para cambiar a la cabecera. Ten en cuenta que cualquier cambio comprometido no afectara al repertorio remoto.
- git status
- Este comando muestra la lista de los archivos que se han cambiado junto con los archivos que están por ser añadidos o comprometidos.
- git push
- Este es uno de los comandos más básicos. Un simple push envía los cambios que se han hecho en la rama principal de los repertorios remotos que están asociados con el directorio que está trabajando. Por ejemplo:
- git checkout
- El comando checkout se puede usar para crear ramas o cambiar entre ellas. Por ejemplo, el siguiente comando crea una nueva y se cambia a ella:
- git remote
- El comando git se usa para conectar a un repositorio remoto. El siguiente comando muestra los repositorios remotos que están configurados actualmente:
- git branch
- Este comando se usa para listar, crear o borrar ramas. Para listar todas las ramas se usa:
- git pull
- Para poder fusionar todos los cambios que se han hecho en el repositori local trabajando, el comando que se usa es:
- git merge
- Este comando se usa para fusionar una rama con otra rama activa:
- git diff
- Este comando se usa para hacer una lista de conflictos. Para poder ver conflictos con el archivo base usa:
- git tag
- Etiquetar se usa para marcar commits específicos con asas simples.
- git log
- Ejecutar este comando muestra una lista de commits en una rama junto con todos los detalles.
- git
reset
- Para resetear el index y el directorio que está trabajando al último estado comprometido se usa este comando:
- git stash
- Este es uno de los comandos menos conocidos, pero ayuda a salvar cambios que no están por ser comprometidos inmediatamente, pero temporalmente:
- git show
- Se usa para mostrar información sobre cualquier objeto git.
- git fetch
- Este comando le permite al usuario buscar todos los objetos de un repositorio remoto que actualmente no reside en el directorio local que está trabajando. Por ejemplo:
- git ls-tree
- Para ver un objeto de árbol junto con el nombre y modo de cada uno de ellos, y el valor blob´s SHA-1, se usa:
- git cat-file
- Usando el valor SHA-1, se puede ver el tipo de objeto usando este comando. Por ejemplo:
- git grep
- Este comando le permite al usuario buscar en los árboles de contenido cualquier frase o palabra. Por ejemplo, para buscar por www.tupaginaweb.com en todos los archivos se usaría:
- git instaweb
- Con este comando un servidor web puede correr interconectado con el repositorio local. Un navegador web también está automáticamente dirigido a el:
- git gc
- Para optimizar el repositorio por medio de una recolección de basura, que limpiara archivos innecesarios y los optimizara, usa:git hc
- git archive
- Este comando le permite al usuario crear archivos zip o tar que contengan los constituyentes de un solo árbol de repositorio:git archive – -format=tar master
- git prune
- Con este comando los objetos que no tengan ningún puntero entrante serán eliminados:git prune
- git fsck
- Para poder hacer un chequeo de integridad del sistema de archivos git, usa este comando. Cualquier objeto corrompido será detectado:git fsck
- git rebase
- Este comando se usa para la re aplicación de los compromisos en otra rama. Por ejemplo:git rebase master
GitBucket dga
- las pages
http://1.43.10.43:8180/jiranzo/aplicacionBase/pages/
forzar un pull
- para forzar un pull a lo que tengo en remoto
git fetch origin master
git reset --hard origin/master
Curso de MiriadaX
- volver a ver las trasparencias pues son muy interesantes
ejercicio del módulo 2
- clonar el repositorio que he previamente copiado con
fork
dejquemada
c:\cursos\miriadax\git_github>git clone https://github.com/javier-iranzo/cal_2com
- hago la modificación en el
html
<h1>javier iranzo</h1>
- añado el cambio y hago un
commit
c:\cursos\miriadax\git_github\cal_2com>git status
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: calculator.html
no changes added to commit (use "git add" and/or "git commit -a")
c:\cursos\miriadax\git_github\cal_2com>git branch --all
* master
remotes/origin/HEAD -> origin/master
remotes/origin/master
c:\cursos\miriadax\git_github\cal_2com>git add -A
c:\cursos\miriadax\git_github\cal_2com>git commit -m "Calculadors:Autor"
c:\cursos\miriadax\git_github\cal_2com>git log --oneline --graph
* c8a0207 Calculadors:Autor
* b0e63ad x^2 button
* 1096247 Readme & License
c:\cursos\miriadax\git_github\cal_2com>
- copio la rama
inverse
del repositoriocal_branches
al repositorio de trabajo con el nombreinverse
git fetch https://github.com/jquemada/cal_branches.git inverse:inverse
- la situación
c:\cursos\miriadax\git_github\cal_2com>git fetch https://github.com/jquemada/cal_branches.git inverse:inverse
remote: Counting objects: 3, done.
remote: Compressing objects: 100% (2/2), done.
remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 1
Unpacking objects: 100% (3/3), done.
From https://github.com/jquemada/cal_branches
* [new branch] inverse -> inverse
c:\cursos\miriadax\git_github\cal_2com>git branch -a -vv
inverse e868dc4 1/x button
* master c8a0207 [origin/master: ahead 1] Calculadors:Autor
remotes/origin/HEAD -> origin/master
remotes/origin/master b0e63ad x^2 button
si hago un
git checkout inverse
la calculadora que sale no tiene mi nombre y la función calcula el inverso del númerogit merge inverse
resuelvo los conflictos y cambio una llave para que funcionen las dos funciones.
hago un commit de esos cambios
cambio a la rama
inverse
congit checkout inverse
ahora la calculadora es la original sin mi nombre
git merge master
ahora la calculadora es la misma que tenia en master
C:\cursos\miriadax\git_github\cal_2com>git log --oneline --graph
* cad7801 integrar inverse
|\
| * e868dc4 1/x button
* | c8a0207 Calculadors:Autor
* | b0e63ad x^2 button
|/
* 1096247 Readme & License
problemas
fallo en la red
- se cae la red al hacer un commit y sale este error
c:\Proyectos\epacf_adm>git push origin master
0 [main] bash 6812 C:\Program Files\Git\usr\bin\bash.exe: *** fatal error - add_item ("\??\C:\Program Files\Git", "/", ...) failed, errno 1
Stack trace:
Frame Function Args
000FFFF9B90 0018005CE9E (0018023D522, 0018021AC39, 00600010000, 000FFFF8B10)
000FFFF9B90 00180046559 (000FFFFABC0, 000FFFF9B90, 1D3F41DDD5AD9D7, 00000000000)
000FFFF9B90 00180046592 (000FFFF9B90, 00000000001, 00600010000, 505C3A435C3F3F5C)
000FFFF9B90 001800CADBB (00000000000, 00140000024, 00000000000, 1D3F41DE64BAB57)
000FFFFCBE0 00180118755 (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFCCB0 00180046B65 (00000000000, 00000000000, 00000000000, 00000000000)
00000000000 001800457C3 (00000000000, 00000000000, 00000000000, 00000000000)
000FFFFFFF0 00180045874 (00000000000, 00000000000, 00000000000, 00000000000)
End of stack trace
Filename too long
- en un repositorio de David
error: open("src/java/es/aragon/epopo/struts/actions/oposiciones/gestionOposicion/presolicitudes/gestionPresolicitud/datosGeneral
es/extranjerosCertificadoDelitosSexuales/OpoInitAgnadirOposicionPresolicitudExtranjerosCertificadoDelitosSexualesDocumentoAction.
java"): Filename too long
error: unable to index file src/java/es/aragon/epopo/struts/actions/oposiciones/gestionOposicion/presolicitudes/gestionPresolicit
ud/datosGenerales/extranjerosCertificadoDelitosSexuales/OpoInitAgnadirOposicionPresolicitudExtranjerosCertificadoDelitosSexualesD
ocumentoAction.java
fatal: adding files failed
- parece que se puede configurar
git config core.longpaths true
- pero en casa no se reproduce
RPC failed
C:\nube\MEGA\programacion\HtmlCssEstatico\jekyll\notas-programacion>git pull
error: fatal: RPC failed; curl 56 SSL read: error:00000000:lib(0):func(0):reason(0), errno 10054
The remote end hung up unexpectedly
fatal: protocol error: bad pack header
C:\nube\MEGA\programacion\HtmlCssEstatico\jekyll\notas-programacion>git pull
remote: Counting objects: 7, done.
remote: Compressing objects: 100% (7/7), done.
remote: Total 7 (delta 5), reused 0 (delta 0)
Unpacking objects: 100% (7/7), done.
From https://bitbucket.org/javieriranzo3/notas-programacion
90fa702..651523f gh-pages -> origin/gh-pages
error: Your local changes to the following files would be overwritten by merge:
_config.yml
Please commit your changes or stash them before you merge.
Aborting
- otro igual 2018-05-22 17:49:38
C:\proyectos\proyectoskatalon>call git push origin master
Password for 'https://javieriranzo3@bitbucket.org':
Counting objects: 277, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (272/272), done.
Writing objects: 100% (277/277), 8.06 MiB | 5.66 MiB/s, done.
Total 277 (delta 106), reused 0 (delta 0)
error: RPC failed; curl 56 SSL read: error:00000000:lib(0):func(0):reason(0), errno 10054
fatal: The remote end hung up unexpectedly
fatal: The remote end hung up unexpectedly
Everything up-to-date
- tiene muchas capturas de pantalla de katalon
- las quito y a la siguiente vez funciona
cannot lock ref
C:\DATOS\javier\notas-programacion>git pull
error: cannot lock ref 'refs/remotes/origin/gh-pages': Unable to create 'C:/DATOS/javier/notas-programacion/.git/refs/remotes/origin/gh-pages.lock': File exists.
Another git process seems to be running in this repository, e.g.
an editor opened by 'git commit'. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
remove the file manually to continue.
From https://bitbucket.org/javieriranzo3/notas-programacion
! 651523f..4125fde gh-pages -> origin/gh-pages (unable to update local ref)
- al siguiente segundo funciona 😄
problema para resolver el host
- me da este error
proyectos\jekyll\notas-programacion>git push -u origin gh-pages
fatal: unable to access 'https://javieriranzo3:pelos678@bitbucket.org/javieriranzo3/notas-programacion.git/':
Couldn't resolve host 'bitbucket.org'
- al segundo intento hace el commit
problemas con git pull
no tracking information for the current branch
- salía este mensaje
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details.
git pull <remote> <branch>
- se soluciona haciendo
git pull origin master
en vez de sologit pull
- luego
git push -u origin master
funciona como siempre
problema con git pull
such ref was fetched
- sale este mensaje 2017-12-14 07:44:09
C:\DATOS\javier\notas-programacion>git pull
remote: Counting objects: 8, done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 8 (delta 6), reused 0 (delta 0)
Unpacking objects: 100% (8/8), done.
From https://bitbucket.org/javieriranzo3/notas-programacion
dba9d58..cd61997 gh-pages -> origin/gh-pages
Your configuration specifies to merge with the ref 'refs/heads/gh-pages'
from the remote, but no such ref was fetched.
C:\DATOS\javier\notas-programacion>git pull
Updating dba9d58..cd61997
Fast-forward
_posts/2017-12-12-bitacora.md | 2 +-
_posts/2017-12-13-bitacora.md | 14 +++++++-------
2 files changed, 8 insertions(+), 8 deletions(-)
- al segundo vuelvo a lanzar el comando y funciona
fatal: refusing to merge unrelated histories
- al hacer un
git pull
- lo soluciono con esta modificación
git pull --allow-unrelated-histories
- origen de la información
remote con contraseña
- para evitar los problemas que da tener varias cuentas en la misma máquina se puede poner la contraseña en el remote
git remote rm origin
git remote add origin https://javieriranzo3@github.com/javieriranzo3/plantillajekyll.git
git config remote.origin.url https://javieriranzo3:pelos678@github.com/javieriranzo3/plantillajekyll.git
- con bitbucket
git remote rm origin
git remote add origin https://javieriranzo3@bitbucket.org/javieriranzo3/feeling-responsive.git
git config remote.origin.url https://javieriranzo3:pelos678@bitbucket.org/javieriranzo3/feeling-responsive.git
- esto soluciona el problema que decía
c:\nube\MEGA\programacion\HtmlCssEstatico\jekyll\plantillajekyll>git push -u origin gh-pages
remote: Permission to javieriranzo3/plantillajekyll.git denied to pelos6.
fatal: unable to access 'https://javieriranzo3@github.com/javieriranzo3/plantillajekyll.git/':
The requested URL returned error: 403
- otro problema relacionado
From https://bitbucket.org/javieriranzo3/notas-programacion
* [new branch] gh-pages -> origin/gh-pages
There is no tracking information for the current branch.
Please specify which branch you want to merge with.
See git-pull(1) for details
git pull <remote> <branch>
If you wish to set tracking information for this branch you can do so with:
git branch --set-upstream-to=origin/<branch> gh-pages
c:\proyectos\notas-programacion> git branch --set-upstream-to=origin/gh-pages
Branch gh-pages set up to track remote branch gh-pages from origin.
- nuevo problema
C:\nube\MEGA\programacion\HtmlCssEstatico\jekyll\notas-personal>git push -u origin gh-pages
remote: Unauthorized
fatal: Authentication failed for 'https://javieriranzo3@bitbucket.org/javieriranzo3/notas-personal.git/'
cambio el repositorio a público y funciona el push pero el despliegue en aerobatic se queda en QUEUED ????
para forzar que te pide la contraseña
- git config –global core.askpass
problema con el buffer
- creo un repositorio nuevo en bitbucket en concreto el de las fotos del camino de santiago con 770 imagenes
- al hacer el push me da un error
C:\nube\MEGA\programacion\HtmlCssEstatico\jekyll\galeria_santiago>git push -u origin master
Counting objects: 767, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (767/767), done.
error: Wfatal: RPC failed; curl 56 SSL read: error:00000000:lib(0):func(0):reason(0), errno 10054
The remote end hung up unexpectedly1 MiB | 82.00 KiB/s
Writing objects: 100% (767/767), 1.34 GiB | 8.31 MiB/s, done.
Total 767 (delta 1), reused 0 (delta 0)
fatal: The remote end hung up unexpectedly
Everything up-to-date
- para solucionarlo
git config --global http.postBuffer 157286400
sacado de altassian
cannot lock ref
- al lanzar
git pull
, desde el equipo de la dga y desde el de casa también, sale este mensaje de error
C:\DATOS\javier\notas-programacion>git pull
error: cannot lock ref 'refs/remotes/origin/gh-pages': Unable to create 'C:/DATOS/javier/notas-programacion/.git/refs/remotes/origin/gh-pages.lock': File exists.
Another git process seems to be running in this repository, e.g.
an editor opened by 'git commit'. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
remove the file manually to continue.
From https://bitbucket.org/javieriranzo3/notas-programacion
! 468afe7..06bd296 gh-pages -> origin/gh-pages (unable to update local ref)
- en casa tenía lanzada la
lanza_pull_build_deploy.bat
pero no tengo claro que eso sea lo que provoca este problema dado que habla delocal.ref
- segundo despues vuelvo a lanzar el comando y funciona correctamente
el archivo que referencia no esta
la siguiente vez buscar el archivo y ver que contiene
2017-10-03 07:45:59
existe un archivo llamado
gh-pages
con este contenido15ef251fe2034012e835020c1dbdb218e097d57e
lo lanzo al minuto y funciona
no tiene que ver con
lanza_pull_build_deploy.bat
ayer habia conflictos al hacer un
git pull
desde casa.
Couldn’t resolve host
- coincide con una caída de internet por lo que creo que esa es la causa
- se restaura y deja de dar el error