Estoy trabajando en un equipo con algunos desarrolladores que usan git en BitBucket. Todos estamos trabajando en una dev
rama, no presionando master
hasta que se publique.
Uno de los desarrolladores cometió un código incorrecto que sobrescribió el mío por accidente, y ahora estoy tratando de enviar el código correcto al repositorio. He estado leyendo sobre este error durante unos días, ya no puedo presionar al repositorio porque recibo el siguiente error:
! [rejected] master -> dev (fetch first)
error: failed to push some refs to 'https://[email protected]/repo_user/repo_name.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Sigo las instrucciones y pull
, pero luego recibo un conflicto de fusión. Después de ingresar un mensaje para el conflicto de fusión, mi código local ahora es el código incorrecto que el otro desarrollador cargó por accidente (como se esperaba del pull
). Así que reemplazo el código incorrecto con la copia de seguridad que copié antes de realizar el envío, y cuando intento presionar nuevamente, obtengo el mismo error.
Es realmente frustrante, realmente quiero ayudar a mi equipo y contribuir, pero no puedo debido a este error. ¿Alguien sabe cómo solucionar este problema? Agradecería mucho cualquier ayuda.
Estos son los comandos que ejecuto para confirmar, si ayudan a alguien:
git pull remotename master:dev
git add --all
git commit -m "some message"
git pull remotename master:dev
git push remotename master:dev
Pensé que si mantenía este orden, no recibiría conflictos de fusión. Creo que estaba equivocado. Gracias de nuevo
Actualización: Debo agregar que he buscado durante unas horas en Google y stackoverflow, y seguí instrucciones diferentes, pero todavía no puedo push
ir a la dev
sucursal.
git pull --rebase
.Usa este comando en la terminal
fuente
Ocurre cuando intentamos enviar al repositorio remoto pero hemos creado un nuevo archivo en el remoto que aún no se ha extraído, digamos
Readme
. En ese caso como dice el errorya que no hemos tomado control remoto actualizado en nuestro entorno local. Así que tira primero desde el control remoto
Actualizará su repositorio local y agregará un nuevo
Readme
archivo. Luego, presione los cambios actualizados al control remotofuente
git pull origin develop
en mi rama de desarrollo local, pero ahora, simplemente hacerlogit pull
funciona bien para mí, no sé por qué.git pull
es suficienteEsto suele suceder cuando el repositorio contiene algunos elementos que no se encuentran localmente. Entonces, para impulsar nuestros cambios, en este caso necesitamos integrar los cambios remotos y luego presionar.
Así que crea un tirón desde el control remoto
Luego empuja los cambios a ese control remoto
fuente
Fuerza para empujar
git push -f maestro de origen
fuente
Lo arreglé, no estoy exactamente seguro de lo que hice. Intenté simplemente empujar y tirar usando:
git pull <remote> dev
en vez degit pull <remote> master:dev
Espero que esto ayude a alguien si tiene el mismo problema.
fuente
Necesita ingresar:
Si usa un
git push origin master --force
, tendrá un gran problema.fuente
git fetch
ygit merge
nuevamente manualmente después de ejecutar elgit pull
que los contiene ?Puedes probar esto:
git pull origin master --rebase
fuente
Bueno, en realidad github es mucho más simple de lo que pensamos y absolutamente sucede cada vez que intentamos presionar incluso después de insertar explícitamente algunos archivos en nuestro repositorio de git, así que para solucionar el problema, simplemente intente ...
: git pull
y entonces..
: git push
Nota: si accidentalmente se atascó en el editor vim después de extraer su repositorio, no se preocupe, simplemente cierre el editor vim e intente presionar :)
fuente
He hecho los siguientes pasos. finalmente está funcionando bien.
Pasos
1) git init
2) estado de git (para comprobar el estado)
3) git add. (agregue todo el archivo de cambios (.))
4) git commit -m
"<pass your comment>"
5) git remoto agregar origen
"<pass your project clone url>"
6) git pull --allow-no relacionadas-historias
"<pass your project clone url>"
maestro7) git push -u
"<pass your project clone url>"
masterfuente
Tuve este error y fue porque había una actualización en el servidor, pero SourceTree no mostraba ninguna actualización disponible (posiblemente porque estaba desconectado la última vez que se verificó). Así que hice una actualización en el árbol de fuentes y ahora muestra 2 elementos para presionar en lugar de 1 elemento.
Así que asegúrese de presionar actualizar o tirar si recibe este error y luego intente nuevamente.
fuente
Advertencia git push -f origin master
fuente
El error posiblemente se deba a la estructura diferente del código que está confirmando y que está presente en GitHub. Puede consultar: Cómo lidiar con el error " negarse a fusionar historias no relacionadas ":
fuente
La mejor opción para mí y funciona y es simple.
git pull --rebase
luego
git push
la mejor de las suertes
fuente
Así es como resolví este problema:
git pull origin master
git push origin master
Esto suele ocurrir cuando su sucursal remota no está actualizada. Y después de esto, si recibe un error como "Ingrese un mensaje de confirmación" Consulte esto (Para mí, la respuesta de Wang xiaohu funcionó :))
fuente
Primero tuve un proyecto SSDT VS. Quería impulsar el proyecto como lo tenía a Github. Quería que ese impulso fuera la versión inicial de mi repositorio comenzando la rama maestra. La sugerencia de Donal de git push -f origin master fue la forma más fácil (que vi) de lograr esto. Como no tenía que preocuparme por reescribir nada, parecía tener sentido.
fuente
Yo tuve el mismo problema. Sucedió que he creado el archivo .Readme en el repositorio sin extraerlo primero.
Es posible que desee eliminar el archivo .Readme o extraerlo antes de presionar.
fuente
puedes usar
esto ayudará en caso de que tenga algunos cambios que aún no se hayan registrado en su repositorio local. especialmente
README.md
fuente