Jako kontynuacja do my question about unavailable branches after svn to git migration, mam inny problem: Nie mogę przenieść nowych gałęzi do mojego centralnego repozytorium Git.Dlaczego mam problemy z wypychaniem nowych gałęzi do mojego repozytorium 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
To nie przesyła mojej gałęzi do serwera. Kolega poradził mi zajrzeć do mojego .git/config, który wygląda tak:
[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
byłem adviced ręcznie dodać wpis przycisku:
[remote "origin"]
fetch = +refs/heads/*:refs/remotes/origin/*
url = ssh://server/opt/git/our_app.git
push = refs/heads/*:refs/heads/*
Teraz wszystko wyglądało lepiej:
$ 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
Podczas gdy to działało, nadal wydaje się być hackerem. Jaki jest właściwy sposób na zrobienie tego?
Domyślnym zachowaniem dla 'git push' jest wypychanie gałęzi, które mają dopasowane miejsca docelowe na zdalnym końcu. Nowe oddziały nie mają takich pasujących miejsc docelowych. Możesz zmienić domyślne zachowanie za pomocą zmiennej konfiguracyjnej 'push.default'. – Amber