gui - git repository
¿Qué significa la advertencia de "actualizar actualizando la ramificación" de git? (3)
Cuando hago un git push, veo lo siguiente:
warning: updating the currently checked out branch; this may cause confusion,
as the index and working tree do not reflect changes that are now in HEAD.
Busqué en Google este mensaje, y todo lo que puedo encontrar es una discusión en la lista de correo git donde los autores intentan decidir exactamente cómo mejorar este mensaje para comunicarme cuál es el verdadero problema.
¿Cómo causé esto y cómo lo soluciono?
En resumen, su repositorio remoto ya no es simple, y está presionando en la rama remota de pago.
Consulte " Cómo publicar un repositorio de Git ":
Un repositorio desnudo es uno sin una copia de trabajo desprotegida del código. Solo contiene la base de datos git.
Como regla general, nunca debe presionar en un repositorio que contenga cambios en la copia de trabajo.
Para garantizar que esto no ocurra, estamos haciendo que el repositorio del servidor sea un repositorio simple: no tiene una copia de trabajo
Desde here :
Tenga en cuenta que el objetivo de un "empuje" es normalmente un repositorio desnudo (es decir, sin árbol de trabajo propio).
También puede acceder a un repositorio que tiene un árbol de trabajo desprotegido, pero el árbol de trabajo no se actualizará con el comando push.
Esto puede conducir a resultados inesperados si la rama a la que presiona es la sucursal actualmente prestada.
Si se define un árbol de trabajo independiente (que, por ejemplo, puede corresponder al DocumentRoot de un servidor web), debe:
- tener un gancho
post-receive
en su repositorio remoto ( como el que se describe aquí ), ejecutando "git checkout -f
" y - ignore el mensaje de advertencia (
git config receive.denycurrentbranch ignore
)
Compruebe, en su repositorio remoto, el valor de git config core.worktree
y git config core.bare
Esto sucede cuando empujas hacia un repositorio no descubierto. Un repositorio simple es aquel que consiste únicamente en un directorio .git
; un repositorio no desnudo también incluye un pago y envío. En general, no debe presionar a un repositorio no descubierto; de hecho, en la versión futura de git, eso estará prohibido. Si presiona para un repositorio no vacío, entonces el HEAD de ese repos no estará sincronizado con el índice y la copia de trabajo.
Si está creando un repositorio al que la gente va a querer presionar, entonces debe crearlo usando git init --bare
(y git init --bare --shared
si varias cuentas de usuario necesitan acceder a él), o git clone --bare
si lo está creando clonando un repositorio existente.
Hice mi repositorio desnudo al clonar un nuevo repositorio desnudo de mi desordenado, guardando el desordenado por si acaso, y reemplazándolo con mi clonado desnudo.
Soy nuevo en git, y cuando configuré el repositorio, olvidé usar la opción --bare. ¡Gracias por toda tu ayuda!
Desde entonces he leído el libro de O''Reilly y ahora soy un convertido total.