2010-10-25 10 views
5

Als Folge zu my question about unavailable branches after svn to git migration habe ich ein anderes Problem: Ich bin nicht in der Lage, neue Zweige zu meinem zentralen Git-Repository zu schieben.Warum habe ich Probleme, neue Zweige in mein Git-Repository zu verschieben?

$ 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 

Also, dies drückt nicht meine Branche auf den Server. Ein Kollege hat mir geraten, in meine .git/config zu sehen, die wie folgt aussieht:

[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 

I adviced wurde manuell eine Push-Eintrag hinzufügen:

[remote "origin"] 
    fetch = +refs/heads/*:refs/remotes/origin/* 
    url = ssh://server/opt/git/our_app.git 
    push = refs/heads/*:refs/heads/* 

Jetzt sah es besser:

$ 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 

Während das funktionierte, fühlt es sich immer noch wie ein Hack an. Was ist der richtige Weg, dies zu tun?

+3

Das Standardverhalten für 'git push' besteht darin, Zweige zu verschieben, für die am fernen Ende entsprechende Ziele existieren. Neue Zweige haben keine übereinstimmenden Ziele. Sie können das Standardverhalten mit der Konfigurationsvariablen 'push.default' ändern. – Amber

Antwort

4

Um einen neuen Zweig schieben git push origin my-test-branch

4

verwenden Wenn Sie nur Ihre Filiale mit der gleichen Branche Name

git push origin my-test-branch 

nur dann verwenden möchten, drücken Wenn Sie Ihre Änderungen auf dem Master-Zweig angezeigt werden soll von der Ursprung Repo:

git push origin my-test-branch:master 
4

Sie eine Verzweigung zu einem Remote-Repository schieben kann mit

git push origin my-test-branch

Sie können dann mit

git branch -r

Here's an introduction zum Erstellen/Entfernen von Remote-Niederlassungen alle entfernten Niederlassungen anzuzeigen.