Incluso después de leer esta pregunta: git-push-current-branch , sigo teniendo dificultades para averiguar cómo debo escribir mi comando git push. Como se menciona en el enlace de la pregunta, no está claro en la documentación.
Me gustaría usar mi ejemplo del "mundo real". Lo siguiente es lo que veo cuando hago un git status
comando en el nivel superior de mi rama:
En la rama amd_qlp_tester
Su rama está por delante de 'origin / amd_qlp_tester' por 5 confirmaciones.
etc ...
Así que el nombre de mi rama es amd_qlp_tester
pero se "bifurcó" de la rama principal (si tengo los términos incorrectos es por mi experiencia en SVN). Pero también está el nombre `origin / amd_qlp_testser '
Entonces, ¿cómo expreso mi comando push?
¿Es alguno de los siguientes?
git push origin/amd_qlp_tester
git push origin amd_qlp_tester
git push amd_qlp_tester
git push origin
git push
fuente
origin amd_qlp_testser
y no?origin/amd_qlp_tester
origin
). Las ramas para enviar valores predeterminados (en las versiones actuales de git):
si no están configuradas, lo que significamatching
, pero se supone que eso cambiará en el futuro.git push
intenta empujar todas las ramas rastreadas, al contrario de lo que dijiste ("el control remoto de la rama actual es el valor predeterminado").simple
estrategia de inserción, lo que significa que solo impulsará la rama actual. blogs.atlassian.com/2014/06/happened-git-2-0-full-goodiesfatal: Couldn't find remote ref branch-name-here
Si su sucursal local y su sucursal remota tienen el mismo nombre, puede hacerlo:
Cuando el nombre de su sucursal local y remota es diferente, puede hacerlo:
fuente
Las respuestas en la pregunta a las que se vinculó tienen que ver con configurar git para que pueda ingresar
git push
comandos muy cortos y hacer que hagan lo que quiera. Lo cual es genial, si sabes lo que quieres y cómo se escribe eso en Git-Ese, ¡pero eres nuevo en git! :-)En su caso, la respuesta de Petr Mensik es la (bueno, "a") correcta. Este es el por qué:
El comando busca en su archivo para encontrar el "remoto" llamado (por ejemplo, ). El archivo de configuración enumera:
git push remote
.git/config
origin
ssh://hostname/path
git fetch remote
Cuando clonó por primera vez el repositorio, siempre que fuera, git configuró valores predeterminados para algunos de estos. La URL es lo que haya clonado y el resto, si está configurado o no, son todos valores predeterminados "razonables" ... o, hmm, ¿ lo son ?
El problema con estos es que la gente ha cambiado de opinión, con el tiempo, en cuanto a lo que es "razonable". Entonces, ahora (dependiendo de su versión de git y si ha configurado las cosas en detalle), git puede imprimir muchas advertencias sobre cambios predeterminados en el futuro. Agregar el nombre de la "rama para empujar" -
amd_qlp_tester
- (1) la cierra y (2) empuja solo esa rama.Si desea empujar de manera más conveniente, puede hacerlo con:
o incluso:
pero si eso hace lo que quieres, depende de si estás de acuerdo con los "primeros autores de git" en que los valores predeterminados originales son razonables, o con los "autores de git posteriores" en que los valores predeterminados originales no son razonables. Entonces, cuando desee hacer todas las cosas de configuración (eventualmente), vea la pregunta (y las respuestas) a la que se vinculó.
En cuanto al nombre
origin/amd_qlp_tester
en primer lugar: en realidad es una entidad local (un nombre guardado dentro de su repositorio), aunque se llama "rama remota". Es la mejor suposición de git sobre "dóndeamd_qlp_tester
está allí". Git lo actualiza cuando puede .fuente
git push origin amd_qlp_tester
Me gustaría agregar una respuesta actualizada; ahora he estado usando git por un tiempo, encuentro que a menudo uso los siguientes comandos para hacer cualquier empuje (usando la pregunta original como ejemplo):
git push origin amd_qlp_tester
- empuje a la rama ubicada en el remoto llamadoorigin
en la rama remota llamadaamd_qlp_tester
.git push -u origin amd_qlp_tester
- igual que el último, pero configura el enlace ascendente de la rama local a la rama remota para que la próxima vez pueda usarlogit push/pull
si aún no está vinculado (solo es necesario hacerlo una vez).git push
- Una vez que haya configurado el upstream, puede usar esta versión más corta.La
-u
opción Nota es la versión corta de--set-upstream
; son lo mismo.fuente