git - remove - ![rechazado] maestro-> maestro(buscar primero)
git tag commits (11)
A veces sucede cuando duplica archivos que suelen ser README.
¿Hay una buena manera de explicar cómo resolver "
! [rejected] master -> master (fetch first)''
" en Git?
Cuando uso este comando
$ git push origin master
, muestra un mensaje de error.
! [rejected] master -> master (fetch first)
error: failed to push some refs to ''[email protected]:zapnaa/abcappp.git''
Deberías usar
git pull
, ese comando hace un
git fetch
y luego el
git merge
.
Si usa un comando
git push origin master --force
, puede tener problemas en el futuro.
Es probable que alguien más (p. Ej., Su colega) haya puesto commits en
origin/master
que no están en su rama
master
local, y está tratando de enviar algunos commits desde su rama local al servidor.
En el 99% de los casos, suponiendo que no desea borrar su trabajo del
origin
, tiene dos opciones:
2) Combine sus cambios en su sucursal local y luego presione el resultado combinado.
git checkout master git pull # resolve conflicts here git push
(Tenga en cuenta que
git pull
es esencialmente solo una
git pull
git fetch
y una
git merge
en este caso).
1) Vuelva a establecer la base de su sucursal local, de modo que parezca que su colega realizó sus confirmaciones primero, y luego usted realizó sus confirmaciones.
Esto mantiene el historial de confirmación agradable y lineal, y evita una "confirmación de fusión".
Sin embargo, si tiene conflictos con los cambios de su colega, es posible que tenga que resolver esos conflictos para cada uno de sus compromisos (en lugar de solo una vez) en el peor de los casos.
Esencialmente, esto es más agradable para todos los demás, pero requiere más esfuerzo para usted.
git pull --rebase # resolve conflicts here git push
(Tenga en cuenta que
git pull --rebase
es esencialmente un
git fetch
y un
git rebase origin/master
).
Esto funcionó para mí:
$ git add .
$ git commit -m "commit"
$ git push origin master --force
La respuesta está ahí, git te dice que vayas a buscar primero.
Probablemente alguien más ya ha presionado para dominar, y su compromiso está detrás. Por lo tanto, debe buscar, fusionar el conjunto de cambios y luego podrá presionar nuevamente.
Si no lo hace (o peor aún, si lo fuerza usando la opción
--force
), puede arruinar el historial de confirmación.
EDITAR: Me pongo en más detalles sobre el último punto, ya que un chico aquí acaba de dar el muy mal consejo de usar la opción
--force
.
Como git es un DVCS, lo ideal es que muchos otros desarrolladores estén trabajando en el mismo proyecto que usted, utilizando el mismo repositorio (o una bifurcación). Si sobrescribe con fuerza con su conjunto de cambios, su repositorio no coincidirá con el de otras personas, porque "reescribió el historial". Harás infelices a otras personas y el repositorio sufrirá. Probablemente un gatito en el mundo también llorará.
TL; DR
- Si quieres resolver, busca primero (y luego combina).
-
Si quieres hackear, usa la opción
--force
.
Sin embargo, pediste lo primero. Vaya por 1) siempre, incluso si siempre usará git usted mismo, porque es una buena práctica.
Prueba este comando git
git push origin master --force
o corto de fuerza
-f
git push origin master -f
Puede usar el siguiente comando: Primero clone una copia nueva de su repositorio, usando la bandera --mirror:
$ git clone --mirror git://example.com/some-big-repo.git
Luego siga los códigos en consecuencia:
Agregar un proyecto existente a GitHub usando la línea de comando
Incluso si eso no funciona, simplemente puede codificar:
$ git push origin master --force
o
$ git push origin master -f
Su error puede deberse a la rama de fusión.
Solo sigue esto:
Paso 1:
git pull origin master
(en caso de que recibas algún mensaje, ignóralo)
Paso 2:
git add .
Paso 3:
git commit -m ''your commit message''
paso 4:
git push origin master
pull siempre es el enfoque correcto, pero una excepción podría ser cuando intentas convertir un sistema de archivos sin Git a un repositorio de Github. Allí tendrías que forzar el primer compromiso.
git init
git add README.md
git add .
git commit -m "first commit"
git remote add origin https://github.com/userName/repoName.git
git push --force origin master
tratar:
git fetch origin master
git merge origin master
Después de escribir este código, recibí otro error: (no avance rápido)
Escribo este código:
git fetch origin master:tmp
git rebase tmp
git push origin HEAD:master
git branch -D tmp
Y resolvió mi problema
este trabajo para mi
-
git init
-
git add --todos
3.git commit -m "nombre"
4.git push origin master --force