sig español git github

español - sig in github



Fallo de "rechazo a fusionar historias no relacionadas" al tirar al repositorio recuperado (2)

Esto no puede ser respondido en breve.

Advertencia : no debe usar la –allow-unrelated-histories menos que sepa qué es un historial no relacionado y está seguro de que lo necesita. El control se introdujo solo para evitar desastres cuando las personas fusionan proyectos no relacionados por error.

Por lo que yo entiendo , en tu caso ha sucedido lo siguiente :

Ha clonado un proyecto en algún punto 1 y ha hecho algún desarrollo al punto 2 . Mientras tanto, el proyecto ha evolucionado a algún punto 3 .

Entonces, por alguna razón, perdió su subdirectorio .git local, que contenía todo su historial de 1 a 2 . Sin embargo, logró restaurar el estado actual.

Pero ahora no tiene historia, parece que todo el proyecto ha aparecido de la nada. Si le pides a git que los fusione, no podrá decir dónde están tus cambios, por lo que puede agregarlos a un proyecto remoto, por lo que tengo entendido, solo informará conflictos masivos de agregar / agregar.

Lo que debe hacer ahora es volver a encontrar ese commit 1 del historial remoto donde ha clonado el proyecto (supongo que no lo hizo después de eso, si lo hizo, entonces debería buscar el último commit que haya tirado). Luego debes modificar tu historial para que comience desde ese commit 1, luego git podrá fusionar correctamente (con pull, por ejemplo).

Entonces, los pasos (asumiendo que ahora estás en tu confirmación restaurada sin historial):

  • ¿de dónde es el compromiso que has clonado como 1? , basado en el tiempo de compromiso por ejemplo
  • ejecute git diff _1?_..HEAD , y lea atentamente, asegúrese de que la diferencia solo contiene las ediciones que ha realizado. Si contiene más de lo que debería haber elegido un poco mal 1? Y necesito ajustarlo y repetir este paso.
  • después de que haya encontrado el commit 1 , debe convertirlo en su padre, haga git --reset --soft _1_ , luego git commit .

Ahora parece que has clonado desde 1 , y luego has hecho una confirmación con todos tus cambios. Su historial intermedio se pierde de todos modos con su antiguo directorio .git , pero ahora puede ejecutar su git pull - se fusionará correctamente.

Se me ocurre un problema con git push. Trabajó exitosamente antes, pero falló esta vez. Al principio, estoy en mi maestro MINGW64 /d/javasoft/apache-tomcat-7.0.70/webapps/MyNote (master) , y luego,

  • Uso git remote add origin para relacionar mi origen de romote, pero advierte que fatal: remote origin already exists.
  • luego, uso git remote rm origin (Alguien me dijo que lo hiciera), está bien.
  • luego, uso git remote add origin https://github.com/***/***.git nuevo. Está bien.
  • luego, uso git push -u origin master (probé git push origin master , pero perdí mi .git local completo por alguna razón antes, así que supongo que puede ser la primera vez que empuje, y debo agregar -u ) . PERO, alerta un error: failed to push some refs to ''https://github.com/***/***.git''
  • entonces, alguien me dijo que debería usar git pull origin master antes de usar push , y así lo hice. PERO, alertó: fatal: refusing to merge unrelated histories .
  • Encontré algunas respuestas en Git que se niegan a fusionar historias no relacionadas , pero parece que no funcionó. En mi problema, alertó fatal: Couldn''t find remote ref –allow-unrelated-histories

Realmente no sé cómo hacerlo ... sólo quiero empujar ...


Intente confirmar los cambios en el repositorio local. antes de empujarlos sobre GITHUB. Puede resolver el problema (tuve un problema similar).