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.