2014-05-17 12 views
9

Derzeit, wenn ich ziehe, bekomme ich Änderungen aus allen Zweigen:Wie kann ich Git sagen, bestimmte Zweige beim Holen/Ziehen zu ignorieren?

$ git pull 
remote: ... 
Unpacking objects: ... 
From ssh://github.com/... 
    a69d94d..a2019da master  -> origin/master 
    b684d4a..b8819dc develop -> origin/develop 
+ 263c644..f1c1894 gh-pages -> origin/gh-pages (forced update) 
Updating a69d94d..a2019da 

ich dieses Verhalten mag, aber ich brauche keine Inhalte aus dem gh-pages Zweig zu erhalten, wie, dass nur generierte Inhalte enthält. Wie konfiguriere ich Git zum Abrufen von allen Zweigen außer einigen (gh-pages). Ich möchte auch vermeiden, jemals gh-pages in meiner Liste der lokalen Niederlassungen zu sehen.

+0

Hilft die Antwort in http://stackoverflow.com/questions/6368987/how-do-fetch-only-one-branch-of-a-remote-git-repository? Allerdings geht es nur um holen. – tigeronk2

+0

Würde das 'remote.origin.fetch' nicht so konfiguriert werden, wie ich in meiner Antwort erwähne, nur die Verzweigung, die Sie wollen, und nicht' gh-branch'? – VonC

+0

@VonC Ja, hätte ich aber nicht manuell für jeden entfernten Zweig tun müssen? –

Antwort

5

könnten Sie Ihre Konfiguration ändern nur einen Zweig zu holen:

[remote "origin"] 
    fetch = +refs/heads/master:refs/remotes/origin/master 

Mit

git config remote.origin.fetch +refs/heads/master:refs/remotes/origin/master 

Wenn Sie mehr als einen Zweig haben, können Sie mehr holen Richtlinien hinzufügen diejenigen zu holen (mit Ausnahme gh-pages , die eine, die Sie nicht abrufen möchten)

Ein Beispiel für einen Abruf mehrerer Zweige finden Sie unter this question.

Ich verstehe, dass dies keine Lösung ist, die gut skaliert, aber ein Fetch Refspec unterstützt nicht die normale Ausschluss-Syntax (wie ^<rev>: siehe "Specifying ranges").

Es gibt eine Möglichkeit, eine bestimmte refspec zu verbergen, die in git 1.8.2: commit daebaa7, "upload/receive-pack: allow hiding ref hierarchies" eingeführt wurde, aber das ist auf der Remote-Seite, nicht eine der Client-Seite.

+3

Die Frage geht um ** überspringen ** eins und nicht nur eins. – manojlds

+0

@manojlds würde nicht einschließlich der eine überspringen die andere? Im Grunde müssen Sie die Zweige auflisten, die Sie abrufen möchten. – VonC

+0

@manojlds Diese Antwort * sollte * funktionieren, aber ich werde warten, um zu sehen, ob jemand anders eine weniger manuelle Lösung hat. Ich verzweifle oft. –