tipos tag remove etiquetas crear git version-control git-push git-remote

tag - ¿Cómo puedo enviar fácilmente una rama local de Git a un control remoto con un nombre diferente?



git remove tag (4)

Cuando hagas la inserción inicial, agrega el parámetro -u :

git push -u origin my_branch:remote_branch

Los empujones posteriores irán donde quieras.

EDITAR:

Según el comentario, eso solo establece pull.

git branch --set-upstream

Deberías hacerlo.

Me he estado preguntando si hay una manera fácil de enviar y sacar una sucursal local con una sucursal remota con un nombre diferente sin especificar siempre ambos nombres.

Por ejemplo:

$ git clone myrepo.git $ git checkout -b newb $ ... $ git commit -m "Some change" $ git push origin newb:remote_branch_name

Ahora, si alguien actualiza remote_branch_name, puedo:

$ git pull

Y todo se fusiona / se reenvía rápidamente. Sin embargo, si realizo cambios en mi "newb" local, no puedo:

$ git push

En cambio, tengo que:

% git push origin newb:remote_branch_name

Parece un poco tonto. Si git-pull usa git-config branch.newb.merge para determinar de dónde sacar, ¿por qué no podría git-push tener una opción de configuración similar? ¿Hay un buen atajo para esto o debería simplemente continuar el camino largo?


El comando de ahora está en desuso. Puedes usar:

git branch --set-upstream-to origin/my_remote_branch my_local_branch

para establecer la rama ascendente de my_local_branch en origin/my_remote_branch .


Este es el proceso que me ha funcionado.

git clone original-repo-url git remote rename origin upstream git remote add origin new-repo-url

Ahora su nuevo repositorio será ''origen'' y el repositorio original es ''ascendente''. Confirmarlo ejecutando git remote -v. (Nota al margen: Upstream se usa para recuperar del repositorio original, para mantener su copia local sincronizada con el proyecto al que desea contribuir, y se utiliza el origen para tirar y empujar, ya que puede contribuir con su propio repositorio).

git push origin master

Ahora su nuevo maestro de repositorio remoto (en Github) estará sincronizado con el maestro original, pero no tendrá ninguna de las ramas de características.

git rebase upstream/branch-name git push origin master

Rebase es una fusión inteligente. Luego presiona para volver a dominar y verás la rama de la función seleccionada como maestra en el nuevo repositorio.

Opcional:

git remote rm upstream git remote add upstream new-repo-url


Por supuesto. Simplemente establezca push.default el push.default upstream para enviar ramas a sus push.default ascendentes (que es lo mismo que pull pull, definido por branch.newb.merge ), en lugar de branch.newb.merge ramas en las que coinciden en el nombre (que es la configuración predeterminada para push.default , matching ).

git config push.default upstream

Tenga en cuenta que esto solía llamarse tracking no en upstream antes de Git 1.7.4.2, por lo que si está utilizando una versión anterior de Git, utilice el tracking lugar. La opción push.default se agregó en Git 1.6.4, por lo que si está en una versión anterior a esa, no tendrá esta opción en absoluto y deberá especificar explícitamente la rama a la que presionar.