tutorial gui español descargar commands comandos git

gui - ¿Cómo resuelvo git diciendo: "Confirma tus cambios o escóndelos antes de que puedas fusionarlos"?



git repository (8)

Hice algunas actualizaciones en mi máquina local, las coloqué en un repositorio remoto, y ahora estoy tratando de enviar los cambios al servidor y recibo el mensaje;

error: Your local changes to the following files would be overwritten by merge: wp-content/w3tc-config/master.php Please, commit your changes or stash them before you can merge.

Así que ejecuté git checkout -- wp-content/w3tc-config/master.php e intenté nuevamente y recibí el mismo mensaje. Supongo que w3tc cambió algo en el archivo de configuración en el servidor. No me importa si la copia local o remota va al servidor (supongo que la remota es la mejor), solo quiero poder combinar el resto de mis cambios (actualizaciones de complementos).

¿Algunas ideas?


Pidiendo cometer antes de tirar

  • git stash
  • origen git pull << nombre de sucursal >>

Si es necesario :

  • aplicar git stash

ADVERTENCIA: Esto eliminará los archivos sin seguimiento, por lo que no es una gran respuesta a esta pregunta.

En mi caso, no quería guardar los archivos, así que esto funcionó para mí:

Git 2.11 y más reciente:

git clean -d -fx .

Git más viejo:

git clean -d -fx ""

Referencia: http://www.kernel.org/pub/software/scm/git/docs/git-clean.html

  • -x significa que los archivos ignorados también se eliminan, así como los archivos desconocidos para git.

  • -d significa eliminar directorios sin seguimiento además de los archivos sin seguimiento.

  • -f se requiere para forzarlo a correr.


Así que la situación que me encontré fue la siguiente:

error: sus cambios locales en los siguientes archivos se sobrescribirían con la combinación: wp-content / w3tc-config / master.php Por favor, confirme los cambios o guárdelos antes de que pueda combinarlos.

Excepto que, justo antes de eso, era remoto: así que en realidad esto:

remoto: error: sus cambios locales en los siguientes archivos se sobrescribirían con merge: some / file.ext Por favor, confirme los cambios o guárdelos antes de que pueda combinarlos.

Lo que estaba ocurriendo era (creo, no 100% positivo) que el enganche posterior a la recepción de git estaba empezando a funcionar y se arruinó debido a los cambios de movimiento en el repositorio del servidor remoto, que en teoría no debería haber sido tocado.

Entonces, lo que terminé haciendo al rastrear el enlace posterior a la recepción y encontrar esto fue tener que ir al repositorio remoto en el servidor, y hubo un cambio (que no estaba en mi repositorio local, que, de hecho, dijo que coincidía, sin cambios, nada que comprometer, actualizado, etc.) Así que mientras estaba en el local, no hubo cambios, en el servidor, luego hice un git checkout -- some/file.ext y luego el Los repositorios locales y remotos realmente coincidían y podría continuar trabajando e implementando. No estoy completamente seguro de cómo ocurrió esta situación, aunque un par de docenas de desarrolladores más los cambios de TI pueden tener algo que ver con eso.


En mi caso, hice una copia de seguridad y luego borré el archivo del que Git se estaba quejando, y luego finalmente pude verificar otra sucursal.

Luego reemplacé el archivo, volví a copiarlo en el contenido y continué como si nada hubiera pasado.


No se puede fusionar con modificaciones locales. Git te protege de perder cambios potencialmente importantes.

Tienes tres opciones:

  • Cometer el cambio usando

    git commit -m "My message"

  • Esconderlo

    El ocultamiento actúa como una pila, en la que puede impulsar cambios y hacerlos aparecer en orden inverso.

    Para guardar, escriba

    git stash

    Haz la fusión, y luego tira del alijo:

    git stash pop

  • Descartar los cambios locales.

    usando git reset --hard
    o git checkout -t -f remote/branch

    O bien: descartar los cambios locales para un archivo específico

    usando git checkout filename


Prueba esto

git stash save ""

e intenta tirar de nuevo


Puedes probar uno de los siguientes métodos:

rebase

Para cambios simples, intente volver a basarse encima de él mientras tira de los cambios, por ejemplo,

git pull origin master -r

Así que aplicará su rama actual en la parte superior de la rama en sentido ascendente después de la captura.

Esto es equivalente a: comandos de checkout master , fetch y rebase origin/master git.

Este es un modo de operación potencialmente peligroso. Reescribe la historia, que no es un buen augurio cuando ya la publicaste. No use esta opción a menos que haya leído git-rebase(1) cuidado.

revisa

Si no le importan sus cambios locales, puede cambiar a otra sucursal temporalmente (con fuerza) y volver a cambiarla, por ejemplo

git checkout origin/master -f git checkout master -f

Reiniciar

Si no le importan sus cambios locales, intente restablecerlo a HEAD (estado original), por ejemplo,

git reset HEAD --hard

Si lo anterior no ayuda, pueden ser reglas en su archivo de normalización de git ( .gitattributes ), por lo que es mejor cometer lo que dice. O su sistema de archivos no admite permisos, por lo que debe deshabilitar el modo de filemode en su configuración git.

Relacionados: ¿Cómo puedo forzar "git pull" para sobrescribir archivos locales?


git stash git pull <remote name> <remote branch name> (or) switch branch git stash apply --index

El primer comando almacena sus cambios temporalmente en el alijo y los elimina del directorio de trabajo.

El segundo comando cambia de rama.

El tercer comando restaura los cambios que ha almacenado en el alijo (la opción --index es útil para asegurarse de que los archivos en etapas todavía se almacenan).