tipos tag qué lista existen etiquetas crear comandos git git-status

tag - Git se niega a restablecer/descartar archivos



lista de comandos git (4)

Normalizar terminaciones de línea

El cambio que está en la modificación es eliminar todas las líneas y agregarlas nuevamente.

Esto se debe a que las líneas nuevas se cambian entre los archivos confirmados y los archivos en el disco.

Github tiene una página útil que detalla cómo lidiar con este tipo de problema, en resumen (para Linux / OSX), el primer paso es cambiar su configuración de git para que clasifique los finales de línea para usted:

git config --global core.autocrlf input

Luego, comprometa la normalización de los finales de línea:

git rm --cached -r . # Remove everything from the index. git reset --hard # Write both the index and working directory from git''s database. git add . # Prepare to make a commit by staging all the files that will get normalized. # This is your chance to inspect which files were never normalized. You should # get lots of messages like: "warning: CRLF will be replaced by LF in file." git commit -m "Normalize line endings" # Commit

Y luego, las terminaciones de línea deben manejarse correctamente. Consulte la página de ayuda en github para obtener más información, o la sección relevante del formato de docs de git y el espacio en blanco .

Resolviendo conflictos de linux-machine

el servidor de transferencia está bloqueado porque no generará nuevas ediciones.

El mensaje de error dice "Tus cambios locales a los siguientes archivos se sobrescribirán con merge:", eso significa que contienen cambios locales que deben confirmarse o descartarse antes de continuar. Suponiendo un uso normal para el servidor de transición (no tiene ningún cambio intencional), los cambios locales pueden descartarse. Por ejemplo, haz lo siguiente:

$ git fetch origin # Retrieve updates $ git reset --hard origin/master # Forcibly change the current branch to match origin/master

Esto recuperará el historial del repositorio, sin actualizar la copia de trabajo, y luego se actualizará para coincidir exactamente con la rama maestra en el repositorio. Tenga en cuenta que el último comando descartará todos los cambios no confirmados.

Tengo un proyecto con ciertos archivos js que no puedo actualizar. Ejecuto OSX localmente y mi servidor remoto / provisional es Linux (CentOS).

Inmediatamente después de clonar mi proyecto localmente, noté que tenía todos esos archivos con estado de git modified . Nunca los modifiqué, así que traté de discard changes o reset , pero vuelven a aparecer. El cambio que está en la modificación es eliminar todas las líneas y agregarlas nuevamente.

No estoy seguro de por qué sucede esto o cómo solucionarlo para que mi estado de git esté limpio como debe ser.

Aquí hay algunas líneas del estado de git:

# modified: app/webroot/js/ckeditor/plugins/devtools/lang/el.js # modified: app/webroot/js/ckeditor/plugins/devtools/lang/fa.js # modified: app/webroot/js/ckeditor/plugins/devtools/lang/gu.js

ACTUALIZACIÓN 1:

Ahora he logrado comprometer los archivos anteriores, pero el servidor provisional está bloqueado porque no extraerá nuevas ediciones:

error: Your local changes to the following files would be overwritten by merge: app/webroot/js/ckeditor/_source/lang/ar.js app/webroot/js/ckeditor/_source/lang/bg.js app/webroot/js/ckeditor/_source/lang/bn.js app/webroot/js/ckeditor/_source/lang/cs.js ... Aborting

No puedo comprometer / presionar porque:

Updates were rejected because a pushed branch tip is behind its remote counterpart

Lo intenté:

git reset --hard

y

git stash git stash drop

Pero no funcionan, no pasa nada.

ACTUALIZACIÓN 2:

git diff me da:

The file will have its original line endings in your working directory. warning: CRLF will be replaced by LF in app/webroot/js/ckeditor/_source/lang/fa.js. The file will have its original line endings in your working directory. warning: CRLF will be replaced by LF in app/webroot/js/ckeditor/_source/lang/gu.js. The file will have its original line endings in your working directory. ...


Acabo de pasar 2 horas (!) Sobre el mismo problema con un archivo .svg (Scalar Vector Graphics), que siguió cambiando después de ''revertir'' sin mi intervención.

Entonces el archivo aparece como modificado en ''estado de git'' ; revertirlo tiene éxito, pero sigue cambiando, por lo que el ''tirón'' está fallando una y otra vez ... ¡tan molesto!

Sin suerte con ''git reset'' , ''git ignore'' , ''git untrack'', etc.

Finalmente, lo resolví quitando el archivo de mi sistema local (no ''git delete'' , simplemente Shift + Delete) >> ahora ''pull'' solicita pases, y el archivo se obtiene del repositorio remoto.

¡Tan fácil, podría llorar!


Este problema apareció repetidamente con el repositorio de hojas de caracteres Roll20 en una máquina Ubuntu y pude resolverlo

#!/bin/sh # Use in root dir of git repository # Fixes some newline-related weirdness git rm --cached -r . git reset --hard

Pero, esto dejó de resolver el problema completamente hoy y al mirar alrededor de encontré al culpable como su archivo .gitattributes :

# Auto detect text files and perform LF normalization * text=auto

Después del git pull origin master , se devuelve el 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: Star Wars Revised RPG/SWRRPG-updated.html no changes added to commit (use "git add" and/or "git commit -a")

La solución fue eliminar la línea * text=auto de .gitattributes:

$ 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: .gitattributes no changes added to commit (use "git add" and/or "git commit -a")

Los cambios en .gitattributes se pueden descartar y Git seguirá .gitattributes .

Editar + 1d : ha vuelto a intentar el "truco" de .gitattributes hoy, pero no git status antes de descartar los cambios de .gitattributes. Sin ninguna razón obvia para mí (¿tal vez el almacenamiento en caché del git status de git status ?), Un git status luego devolvió esto de nuevo:

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: Star Wars Revised RPG/SWRRPG-updated.html no changes added to commit (use "git add" and/or "git commit -a")

Haciéndolo de nuevo, pero con el git status entre ellos funcionó.


Siempre mencioné que tu core.autocrlf esté configurado en false , como en " Git: repo pegado usando stash después de la normalización de crlf ".

git config --global core.autocrlf false

También asegúrese de que no tenga un archivo .gitattributes con directivas eol que intenten convertir el final de las líneas.
La idea básica es: ¿todavía ves ese mensaje de error cuando te aseguras de que no haya ninguna conversión automática de ningún tipo?

Pero por si acaso, considere también " Git rebase failed, ''Sus cambios locales a los siguientes archivos se sobrescribirán mediante fusión''. ¿No hay cambios locales? "

Estoy en un Mac, y este oscuro cambio de configuración pareció arreglar todos mis problemas con respecto a los cambios no registrados cuando no había ninguno.

git config --global core.trustctime false