Así que creo que puede tener que ver con textmate, pero trabajamos en un equipo pequeño y estamos teniendo algunos problemas con conflictos de archivos completos de archivos casi idénticos en git porque cada línea de una rama tiene un ^ M agregado.
¿Qué se ^M
supone que debe hacer este misterioso personaje y de dónde podría venir?
Nuestros desarrolladores usan emacs en Windows / Mac, TextMate en Mac, coda en Mac y ocasionalmente el editor de texto wp-admin.
¿Alguien ha tenido este problema derivado de uno de esos?
Respuestas:
En git-config , configure
core.autocrlf
paratrue
hacer que git convierta automáticamente los finales de línea correctamente para su plataforma, por ejemplo, ejecute este comando para una configuración global:fuente
Alguien no está convirtiendo sus caracteres de final de línea correctamente .
Supongo que es la gente de Windows ya que aman su CRLF. Unix ama a LF y Mac amaba a CR hasta que se mostró como Unix.
fuente
^M
es0x0d
decir, el carácter de retorno de carro. Si su pantalla se ve asíentonces el archivo debe provenir de Windows porque la secuencia de nueva línea estándar en Windows es
CR
LF
(0x0d 0x0a
), mientras que la secuencia de nueva línea estándar consiste únicamenteLF
en Unices.Si el archivo provenía de un sistema Mac OS 9 o anterior, lo vería como
porque no habría saltos de línea después de los retornos de carro.
fuente
Para hacer que ^ M desaparezca en git, escriba:
Créditos: https://lostechies.com/keithdahlby/2011/04/06/windows-git-tip-hide-carriage-return-in-diff/
fuente
git diff
aún tiene en cuenta la ^ M al comparar archivos. Elimine esta configuración congit config --global --unset core.whitespace
(de este hilo ).--global
para configurar el repositorio actual.Tienen que ver con la diferencia entre las terminaciones de línea de estilo DOS y el estilo Unix. Mira el artículo de Wikipedia . Es posible que pueda encontrar una herramienta dos2unix para ayudar, o simplemente escribir un pequeño script para solucionarlo usted mismo.
Editar : encontré el siguiente código de muestra de Python aquí :
fuente
Estoy usando Android Studio (JetBrains IntelliJ IDEA ) en Mac OS y mi problema fue que ^ M comenzó a aparecer en algunos archivos en mi solicitud de extracción en GitHub . Lo que funcionó para mí fue cambiar el separador de línea para un archivo.
Abra el archivo deseado en el editor, vaya a Archivo, vaya a Separadores de línea y luego elija la mejor opción para usted (para mí fue LF - Unix y OS X (\ n) )
Según el siguiente artículo, este problema es el resultado de terminaciones de línea confusas entre sistemas operativos: http://jonathonstaff.com/blog/issues-with-line-endings/
Y más información puede encontrar aquí: https://www.jetbrains.com/help/idea/configuring-line-separators.html#d84378e48
fuente
en lugar de query-replace, también puede usar Mx delete-trailing-whitespace
fuente
Pote lo siguiente en tu
~/.emacs
(o equivalente)y luego podrías simplemente usarlo
M-x dos2unix
.fuente
^M
al final de la línea en Emacs está indicando un retorno de carro (\ r) seguido de un avance de línea (\ n). A menudo verá esto si una persona edita archivos en Windows (donde el final de línea es la combinación del retorno de carro y los caracteres de nueva línea) y edita en Unix o Linux (donde el final de línea es solo un carácter de nueva línea).La combinación de caracteres generalmente no es dañina. Si está utilizando el control de fuente, es posible que pueda configurar el formato de registro del archivo de texto para que las líneas se ajusten mágicamente por usted. Alternativamente, puede utilizar los desencadenadores de ingreso y salida que automáticamente "arreglarán" los archivos por usted. O bien, puede usar una herramienta como dos2unix para ajustar manualmente las cosas.
fuente
Como todos han mencionado. Es un estilo de final de línea diferente. MacOSX utiliza finales de línea Unix, es decir, LF (avance de línea).
Windows usa CR (retorno de carro) y LF (avance de línea) como final de línea. Dado que está utilizando Windows y Mac, de ahí proviene el problema.
Si crea un archivo en Windows y luego lo trae a la Mac, puede ver estos caracteres ^ M al final de las líneas.
Si desea eliminarlos, puede hacerlo fácilmente en emacs. Simplemente resalte y copie el carácter ^ M y realice una consulta-reemplace ^ M con y ya está.
EDITAR: algunos otros enlaces que pueden ser de ayuda. http://xahlee.org/emacs/emacs_adv_tips.html
Este le ayuda a configurar emacs para usar un tipo particular de estilo de final de línea. http://www.emacswiki.org/emacs/EndOfLineTips
fuente
Me encontré con este problema hace un tiempo. El ^ M representa un retorno de carro, y la búsqueda en
Ctrl-Q Ctrl-M
(Esto crea un ^ M literal) le permitirá obtener un control sobre este personaje dentro de Emacs. Hice algo en este sentido:fuente
Si no tiene la utilidad dos2unix instalada en su sistema, puede crear la suya propia para deshacerse de los caracteres finales de Windows:
con el siguiente contenido
En su ~ / .bashrc, agregue la línea:
Aplicando
eliminará ^ M caracteres en las líneas termina en file_from_PC.txt. Puede verificar si los tiene o no utilizando cat:
fuente
Ver también:
Ocultar ^ M en emacs
Tenga cuidado si elige eliminar los caracteres ^ M y volver a enviarlos a su equipo. Pueden ver un archivo sin retornos de carro después.
fuente
La solución para mí fue utilizar la siguiente función elisp que se encuentra en este artículo de Emacs Wiki .
Ejecute la función
M-x dos2unix
en el búfer y guarde el archivo, todo^M
desaparecerá.fuente