Hay varias formas de configurar el flujo ascendente, mientras empuja o no empuja al mismo tiempo.
Si magit-push-current-set-remote-if-missing
no es nil
(el valor predeterminado), verá algo como:
Push feature to
p pushRemote, after setting that
u @{upstream}, after setting that
e elsewhere
Para presionar origin/feature
y configurarlo como ascendente, presione uy luego RETacepte el candidato de finalización predeterminado.
Si magit-push-current-set-remote-if-missing
es así nil
, entonces verías esto en su lugar:
Push feature to
e elsewhere
Si presionó pahora, se le informaría que el flujo ascendente no está configurado (lo que implica que no puede empujar al flujo ascendente si no hay flujo ascendente).
Pero si magit-push-current-set-remote-if-missing
es así nil
, entonces la lista de interruptores aparecería --set-upstream
, por lo que podría usarla P - u pcomo está acostumbrado (excepto que la segunda p está en minúsculas). Sin embargo, hay una complicación: después de cambiar el valor magit-push-current-set-remote-if-missing
, debe reiniciar Emacs para --set-upstream
que aparezca o desaparezca.
Finalmente, puede definir el sentido ascendente utilizando el "conjunto de aguas arriba (y no hacer nada más)" comando: b uorigin/master
RET. Tenga en cuenta que cuando utiliza este enfoque, solo puede seleccionar una rama que ya existe.
Pero sería mejor configurar el control remoto push y presionar para eso. Para obtener más información sobre el control remoto push y cómo difiere del flujo ascendente, consulte el nodo Branching en el manual de información (la versión web aún no se ha actualizado).
Básicamente, la bifurcación ascendente es la bifurcación en la que la bifurcación de características eventualmente se fusionará (fusionando o rebase, no presionando), lo más probable origin/master
. Y el mando a distancia es donde empujas tus ramas de características mientras aún trabajas en ellas o para que alguien más pueda fusionarlas. Si se nombra la rama local feature
y el push-remote lo es my-fork
, entonces presionar esa rama usando P pempujaría a my-fork/feature
. (El "push-to-branch" no se puede configurar, el nombre de la sucursal en el push-remote siempre es el mismo que el nombre local).
Entonces, si bien su pregunta era algo así como "cómo presiono hacia arriba, mientras configuro el flujo hacia arriba al mismo tiempo", mi recomendación es no presionar hacia arriba, sino presionar hacia el control remoto.
Siempre que no haya cambiado el valor de magit-push-current-set-remote-if-missing
usted, puede configurar el mando a distancia mediante P psome-remote
RET. Pero, dado que probablemente empuje todas las ramas de funciones al mismo control remoto, es mejor configurar el control remoto de empuje una vez para todas las ramas y terminar con él: by luego M-phasta que se seleccione el control remoto correcto.
También tenga en cuenta que generalmente no debería ser necesario establecer explícitamente la rama ascendente. Cuando crea una nueva rama y selecciona una rama remota como punto de partida, entonces se usa como flujo ascendente.
Desafortunadamente, el punto de partida generalmente es una rama local y, en ese caso, Git por defecto no lo usa como el flujo ascendente. Pero eso se puede solucionar fácilmente ejecutando esto una vez:
git config --global branch.autoSetupMerge always
El valor predeterminado es true
, que significa "establecer el punto de partida como ascendente, siempre que sea una rama remota ".
Por cierto, lo mismo se aplica al push-remote. Eso también debería establecerse semiautomáticamente en repositorios "nuevos". Si clona un repositorio, se le preguntará si desea usarlo origin
como control remoto push. Debería responder "sí", a menos que vaya a agregar otro control remoto, por ejemplo my-fork
, que debe usarse como control remoto push. Cuando agrega un nuevo control remoto usando M ay remote.pushDefault
aún no está configurado, se le preguntará si desea usar el control remoto recién agregado como control remoto push.
Esto se puede configurar con magit-clone-set-remote.pushDefault
y magit-remote-add-set-remote.pushDefault
.
Otra opción avanzada es magit-branch-prefer-remote-upstream
, que por defecto es nil
. Si lo establece en t
, y luego selecciona una rama local como punto de partida para una nueva rama, entonces el flujo ascendente del punto de inicio podría (según algunas reglas, ver cadena de documentos) como flujo ascendente, en lugar de El punto de partida mismo.
<remote>/<branch>
parte se dejó accidentalmente fuera de la solicitud (vea este comentario ). Mientras tanto, puede establecermagit-push-current-set-remote-if-missing
en cero.