2016-11-18 3 views
4

Wenn ich einen neuen Zweig erstelle, wenn ich "Konfiguriere Upstream für Push und Pull" einstelle, erscheint eine Warnung (im Screenshot blau eingekreist). Warum wird das nicht empfohlen? Welche möglichen Probleme oder Nachteile hat das?EGit: warum "Lokale Verzweigung als Upstream wird nicht empfohlen"?

Ich lief diese Warnung durch Suchmaschinen und suchte danach auf https://git-scm.com und https://www.eclipse.org/egit/, aber ich fand nichts, und wenn ich das "?" Hilfe-Schaltfläche in diesem Dialog passiert nichts.

"Create Branch" dialog.

Auch wenn ich den Vorschlag von dieser Warnung und „verwenden Remote-Zweig“, wie ich das tun folgen wollte tun? Außer natürlich die "konfigurieren Upstream für Push und Pull" Kontrollkästchen, nichts, dass ich in diesem Dialogfeld ändern, bewirkt, dass die Warnung verschwindet.

Antwort

3

Es gibt nichts falsch mit Einstellung eines anderen lokalen Zweig als Ihr upstream. Es bedeutet nur, dass git fetch nichts tut - Sie haben bereits alle Ihre eigenen Commits; git merge geht aus dem anderen Zweig über; git rebase Rebases auf den anderen Zweig; und git push versucht, den anderen Zweig vorzuspulen, oder schlägt fehl, wenn dies nicht möglich ist.

Der "andere Zweig" (der Upstream) ist Ihr eigener gewöhnlicher lokaler Zweig, der wie gewohnt in Ihrem Repository gespeichert ist. Sie sind also Ihr eigener Upstream (und Ihr eigener Downstream, wenn Sie von der anderen Filiale aus gesehen werden). Es fühlt sich ein wenig inzestuös an. :-)

Es ist komplett nicht klar für mich was anderen lokalen Zweig EGit wird als Upstream, hier festgelegt. (Ich benutze EGit nicht.) Meine Schätzung, basierend auf dem Zeug im Bild, ist master.

+0

Ok, in diesem Stadium denke ich, bevor ich dieses Thema verstehen kann, muss ich den Unterschied zwischen "Upstream" und "Remote" untersuchen, denn nach dem, was ich aus Ihrer Antwort verstehe, gibt es nirgendwo in diesem Szenario nicht-lokale Zweige, aber ich weiß nur, dass es auch eine Remote-Filiale gibt, auf die ich dränge, die meine Kollegen über das lokale Netzwerk auschecken können. Außerdem hört es sich an, als ob zwei lokale Zweige existieren, während ich nur an einen denke. BTW, wenn ich dem Vorschlag von dieser Warnung folgen und "entfernten Zweig benutzen" wollte, wissen Sie, wie man das macht? – SantiBailors

+3

Nun ... Eclipse EGit könnte versuchen, eine andere Terminologie aus dem einfachen Git zu verwenden (was in mancher Hinsicht gut sein könnte, da Git's, na ja, nicht so gut ist). Aber Git hat überhaupt keine "Remote-Zweige", nur (lokale) Zweige (Branchenname) und * Remote-Tracking * -Abzweige. Remote-Tracking wird manchmal auf "Remote" verkürzt (sollte aber nicht sein). Währenddessen spricht dein Git mit einem anderen Git, das wir "die Fernbedienung" nennen können, und das * andere * Git hat auch (lokale) Zweige, so dass wir diese "entfernten Zweige" nennen könnten. Sie können sehen, wie das ziemlich schnell ziemlich verwirrend wird! – torek

+2

Im Allgemeinen wird in einem einfachen Git eine (lokale) Verzweigung - ein Name wie "Master" oder "dev" - gesetzt, um sich auch den Namen eines entfernten Remote-Tracking-Zweiges wie "Herkunft/Master" oder "Herkunft/Dev" zu merken '. Dann, jedes Mal, wenn Sie einen 'Git fetch' ausführen, der den anderen Git nach Ursprung aufruft, bekommt Ihr Git eine Liste von allen * ihren * Git's-Zweigen (deren' Master' usw.) und kopiert das Zeug nach Bedarf zu * Ihrem * Repository, und aktualisiert dann Ihre "Herkunft/Meister" usw., um sich daran zu erinnern, "was ich da drüben sah". Ihre Remote-Tracking-Zweige werden daher automatisch auf 'git fetch' aktualisiert. Sie haben dann Ihre lokalen 'Master' beziehen sich auf' Herkunft/Master', [fortgesetzt] – torek

1

Ich nehme an, dass es Ihnen sagt, dass das Speichern Ihres Codes an einem anderen Ort auf demselben Gerät Ihnen nicht hilft, den Code zu bewahren. Wenn Sie zu GitHub oder BitBucket wechseln, können Sie Ihr Gerät zerstören und trotzdem den Code haben. Das Speichern Ihres Codes zweimal lokal ist nicht sicherer.

Um dies zu beheben, machen Sie einen Repo auf entweder BitBucket (erlaubt private Repos kostenlos) oder GitHub und drücken Sie Ihren Code dort.

+0

Sorry, mir ist das nicht klar. Nachdem ich meinen Zweig auf diese Weise erstellt habe, weiß ich, dass wenn ich nur Änderungen festschreibe, diese im lokalen Zweig gespeichert werden, aber ich auch regelmäßig drehe, oder ich beginne nur mit dem "Commit and Push" Knopf anstelle des "Commit" Knopfes und ich bin mir sicher, dass dies zur Erstellung und Aktualisierung einer Remote-Verzweigung führt (die sich nicht auf GitHub oder BitBucket befindet, sondern auf einem Server im lokalen Netzwerk). In der Tat können andere Leute diesen Zweig von der Fernbedienung auschecken. Ich dachte, dass _not_ die Überprüfung "Upstream für Push und Pull konfigurieren" würde meine Zweigstelle lokal bleiben würde. – SantiBailors

+0

Ah. Ich glaube, das hat damit zu tun, woher der Zweig stammt. Können Sie eine Verzweigung auf der Remote erstellen, überprüfen Sie es, und sehen Sie, ob es immer noch die Nachricht gibt, wenn Sie neue Änderungen vornehmen möchten? –

+0

Ich weiß es eigentlich nicht, denn die einzige Möglichkeit, einen Zweig zu erstellen, ist mit der rechten Maustaste auf ein Projekt (im Paket-Explorer)/Team/Wechseln zu/Neuer Zweig, und das zeigt den "Create Branch" -Dialog in der Bildschirmfoto. Dort kann ich nicht angeben, dass das Ziel, an dem der Zweig erstellt werden muss, das Remote ist. Es wird lokal erstellt und wenn ich das erste Mal drücke, wird es auch auf der Fernbedienung erstellt. Übrigens wird die Warnung im Betreff nur im Dialogfeld "Zweig erstellen" angegeben, nicht beim Drücken. – SantiBailors

Verwandte Themen