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 mal1?
Y necesito ajustarlo y repetir este paso. - después de que haya encontrado el commit
1
, debe convertirlo en su padre, hagagit --reset --soft _1_
, luegogit 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 quefatal: 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 unerror: failed to push some refs to ''https://github.com/***/***.git''
- entonces, alguien me dijo que debería usar
git pull origin master
antes de usarpush
, 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).