Git: Was ist ein Tracking-Zweig?
Kann mir jemand erklären, einen "tracking branch", bezieht sich auf git?
Hier ist die definition von git-scm.com:
Einen 'tracking branch' ist in Git eine lokale
Zweig, der verbunden ist mit einem remote -
Zweig. Wenn Sie push-und pull auf, dass
Zweig, es automatisch drückt und
zieht an der remote-Zweigstelle, dass Sie es ist
verbunden mit.Verwenden Sie dies, wenn Sie immer ziehen aus den
gleiche upstream-branch in das neue
Zweig, und wenn Sie nicht wollen, zu verwenden
"git pull" ausdrücklich.
Leider wird neu in git und kommen aus dem SVN, dass die definition macht absolut keinen Sinn für mich.
Bin ich beim Lesen über "Die Pragmatic Guide to Git" (tolles Buch, übrigens), und Sie scheinen zu behaupten, dass tracking-Zweige sind eine gute Sache, und, nachdem Sie Ihre erste remote (origin, in diesem Falle), sollten Sie Ihre master-branch zu sein, eine tracking-branch, aber es leider nicht gerade warum eine tracking-branch ist eine gute Sache oder welche Vorteile erhalten Sie durch die Einrichtung Ihres master-branch zu sein, eine tracking-branch Ihrer origin-repository.
Kann mir bitte jemand mich aufklären (in Englisch)?
InformationsquelleAutor der Frage jerhinesmith | 2011-01-14
Du musst angemeldet sein, um einen Kommentar abzugeben.
Den ProGit Buch hat eine sehr gute Erklärung:
- Tracking Branches
Check-out, eine Niederlassung von einem remote-branch erstellt automatisch eine sogenannte tracking-branch. Tracking branches sind lokale Niederlassungen, die eine direkte Beziehung zu einem remote-branch. Wenn du einen tracking-branch und geben git push, Git automatisch weiß, welches server-und-Zweig zu schieben. Auch das ausführen von git ziehen, während Sie auf einem dieser Zweige holt alle remote-Referenzen und dann automatisch verschmilzt in der entsprechenden remote-branch.
Beim Klonen eines Repositorys, in der Regel erstellt automatisch einen master-branch, die Spuren origin/master. Das ist, warum git push und git pull funktioniert out of the box mit keine anderen Argumente. Jedoch können Sie andere tracking-Zweige, wenn Sie es wünschen — diejenigen, die don ' T-track-Filialen auf Herkunft und verfolgen nicht den master branch. Der einfache Fall ist das Beispiel, das Sie gerade sah, läuft
git checkout -b [branch] [remotename]/[branch]
. Wenn Sie Git-version 1.6.2 oder höher, können Sie auch die--track
Kürzel:Einrichten einer lokalen Niederlassung mit einem anderen Namen als dem remote-branch, kannst du einfach die erste version mit einer anderen lokalen Niederlassung name:
Nun, Ihre lokale Niederlassung
sf
wird automatisch push und pull ausorigin/serverfix
.InformationsquelleAutor der Antwort
Den Progit Buch erwähnt:
Nicht genau. die Frage ALSO "Eine harte Zeit zu verstehen,
git-fetch
" beinhaltet:Aber eigentlich, sobald Sie ein upstream-branch Beziehung zwischen:
master
origin/master
Dann können Sie prüfen
master
als lokalen tracking branch: es verfolgt die remote-tracking-branchorigin/master
die Runden-track der master-branch des upstream repoorigin
.InformationsquelleAutor der Antwort VonC
Unten sind meine persönlichen Lern-Hinweise auf GIT-tracking branches, hoffentlich wird es hilfreich sein für zukünftige Besucher:
- Tracking branches und "git fetch":
InformationsquelleAutor der Antwort hagrawal
Diese war, wie ich fügte hinzu, eine tracking-branch, so kann ich ziehen, in meine neue Filiale:
InformationsquelleAutor der Antwort agrublev