Estoy intentando actualizar un repositorio de Git en GitHub. Hice un montón de cambios, los agregué, me comprometí y luego intenté hacer un git push
. La respuesta me dice que todo está actualizado, pero claramente no lo está.
git remote show origin
responde con el repositorio que esperaba.
¿Por qué Git me dice que el repositorio está actualizado cuando hay confirmaciones locales que no son visibles en el repositorio?
[searchgraph] git status
# On branch develop
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# Capfile
# config/deploy.rb
nothing added to commit but untracked files present (use "git add" to track)
[searchgraph] git add .
[searchgraph] git status
# On branch develop
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# new file: Capfile
# new file: config/deploy.rb
#
[searchgraph] git commit -m "Added Capistrano deployment"
[develop 12e8af7] Added Capistrano deployment
2 files changed, 26 insertions(+), 0 deletions(-)
create mode 100644 Capfile
create mode 100644 config/deploy.rb
[searchgraph] git push
Everything up-to-date
[searchgraph] git status
# On branch develop
nothing to commit (working directory clean)
git push origin x
, todavía no estaba configurando la rama x para ser empujada en el futuro. Se debió a una pushspec específica en la.gitconfig
[remote "origin"]
sección que estaba causando el comportamiento de git.Esto me sucedió cuando mi aplicación SourceTree se bloqueó durante la preparación. Y en la línea de comandos, parecía que el anterior se
git add
había corrompido. Si este es el caso, intente:En el último comando, es posible que deba configurar la rama.
Tenga en cuenta que esto es suficiente si no ha hecho ninguna ramificación o algo por el estilo. En ese caso, asegúrese de presionar a la rama correcta como
git push origin develop
.fuente
Tratar:
fuente
Intente ir a la última confirmación y luego hágalo
git push origin HEAD:master
.fuente
Push the current branch to the remote ref matching master in the origin repository. This form is convenient to push the current branch without thinking about its local name.
git push
: / Esto funcionó para mí, así:git push origin HEAD:my_branch_name
.En mi caso, ninguna de las otras soluciones funcionó. Tuve que hacer una copia de seguridad de los nuevos archivos modificados (que se muestran con
git status
) y ejecutar un archivogit reset --hard
. Esto me permitió realinearme con el servidor remoto. Agregar nuevos archivos modificados y ejecutarHizo el truco. Espero que esto ayude a alguien, como una solución de "última oportunidad".
fuente
En este momento, parece que estás en la rama de desarrollo. ¿Tiene una rama de desarrollo en su origen? Si no es así, inténtalo
git push origin develop
.git push
funcionará una vez que conozca una rama de desarrollo en su origen.Como lectura adicional, echaría un vistazo a las páginas de manual de git-push , en particular, a la sección de ejemplos.
fuente
Para ser específico, si desea fusionar algo para dominar, puede seguir los pasos a continuación.
Es una práctica común en el modelo de solicitud de extracción crear en una nueva rama local y luego enviar esa rama a remota. Para eso, debe mencionar dónde desea impulsar sus cambios a distancia. Puede hacer esto mencionando el control remoto en el momento de presionar.
Si desea crear una sucursal que no sea el nombre de su sucursal local, puede hacerlo con el siguiente comando.
fuente
Gracias a Sam Stokes. De acuerdo con su respuesta, puede resolver el problema de diferente manera (yo usé de esta manera). Después de actualizar su directorio de desarrollo, debe reiniciarlo
Luego, puede confirmar y enviar actualizaciones a master
fuente
git init
y abra una nueva pestaña de comando, escriba:git push origin branch_name
Esto me sucedió cuando estaba
^C
en medio de unagit push
a GitHub. Sin embargo, GitHub no mostró que se hayan realizado los cambios.Para solucionarlo, hice un cambio en mi árbol de trabajo, me comprometí y luego presioné nuevamente. Funcionó perfectamente bien.
fuente
Esto me pasó a mí. Simplemente volví a comprometer los cambios y luego presioné.
fuente
Probé muchos métodos, incluidos los definidos aquí. Lo que tengo es
Asegúrese de que el nombre del repositorio sea válido. La mejor manera es copiar el enlace del sitio del repositorio y pegarlo en git bash.
Asegúrese de haber confirmado los archivos seleccionados.
Si ambos pasos no funcionan, intente
git push -u -f origin master
fuente
En su lugar, puede intentar lo siguiente. No tienes que ir a
master
; puede forzar directamente los cambios desde su propia rama.Como se explicó anteriormente, cuando realiza un rebase, está cambiando el historial en su rama. Como resultado, si intentas hacer algo normal
git push
después de una rebase, Git lo rechazará porque no hay una ruta directa desde la confirmación en el servidor hasta la confirmación en tu rama. En su lugar, deberá usar la marca-f
o--force
para decirle a Git que sí, que realmente sabe lo que está haciendo. Al realizar empujes forzados, se recomienda encarecidamente que establezca supush.default
configuración de configuración en simple, que es la predeterminada en Git 2.0. Para asegurarse de que su configuración sea correcta, ejecute:Una vez que sea correcto, puede ejecutar:
Y verifique su solicitud de extracción. ¡Debería actualizarse!
Vaya al final de Cómo volver a basar una solicitud de extracción para obtener más detalles.
fuente
También asegúrate de empujar hacia la rama correcta.
fuente
Esto me sucedió una vez que intenté empujar desde una nueva rama y usé en su
git push origin master
lugar. Deberías:git push origin your_new_branch
si desea que esta rama también ocurra en el repositorio remoto.git merge origin master
.fuente
fuente