Como seguimiento de my question about unavailable branches after svn to git migration, tengo un problema diferente: no puedo enviar nuevas sucursales a mi repositorio central de Git.¿Por qué tengo problemas para enviar nuevas sucursales a mi repositorio de Git?
$ git clone ssh://server/opt/git/our_app.git
$ cd our_app
$ git branch my-test-branch
$ git checkout my-test-branch
$ echo test > test.txt
$ git add test.txt
$ git commit test.txt -m "test commit"
[master ed81ec0] test commit
1 files changed, 1 insertions(+), 0 deletions(-)
create mode 100644 test.txt
$ git push
Everything up-to-date
Por lo tanto, esto no empuja mi rama al servidor. Un colega me aconsejó que mirar en mi .git/config, que se ve así:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://server/opt/git/our_app.git
[branch "master"]
remote = origin
merge = refs/heads/master
me aconsejaron añadir manualmente una entrada de empuje:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://server/opt/git/our_app.git
push = refs/heads/*:refs/heads/*
Ahora las cosas se veían mejor:
$ git push
Password:
Counting objects: 1, done.
Delta compression using up to 1 threads.
Compressing objects: 100% (1/1), done.
Writing objects: 100% (1/1), 5 bytes, done.
Total 1 (delta 1), reused 0 (delta 0)
To ssh://server/opt/git/our_app.git
* [new branch] my-test-branch -> my-test-branch
Mientras esto funcionó, todavía se siente como un truco. ¿Cuál es la forma correcta de hacer esto?
El comportamiento predeterminado de 'git push' es empujar ramas que tienen destinos coincidentes en existencia en el extremo remoto. Las nuevas sucursales no tienen esos destinos coincidentes. Puede cambiar el comportamiento predeterminado con la variable de configuración 'push.default'. – Amber