Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
nach langem Testen und Vorstellung bei meinem Kollegen sind wir dem Umstieg auf eGit sehr nah. Hier 2 Fragen meiner Kollegen, die ich nicht beantworten konnte und auf die ich im Netz keine Antworten fand:
1. Was macht pull genau? ein fetch und merge ins aktuelle Working directory oder fetch und merge aller Branches, die man lokal hat.
2. Wenn ich einen Branch anlege, mache ich das aus dem lokal oder remote tracking Bereich? Vor allem, was hat das mit der Pull Strategie zu tun, die ich gleich danach einrichten muss.
zu 1. Immer nur in den aktuellen ausgecheckten Branch.
zu 2. Je nachdem. Einen Branch mit remote tracking erstellt du meistens nur, wenn ein gleichnamiger lokaler Branch wie im remote Repo noch nicht vorhanden ist. ich nehme dann meisten immer merge. Sonst mache ich immer eigentlich nur einen lokalen tracking bereich,
1. fetch und merge in den aktuell ausgecheckten Branch, dabei wird der konfigurierte getrackte Branch des remote repositories gemerged (kann man über merge strategy einstellen wenn man den lokalen Branch basierend auf einem remote tracking branch anlegt).
2. Falls du Pull einsetzen willst immer basierend auf einem remote tracking branch, meistens ist das refs/remotes/origin/master
ich muss das Thema noch mal aufreissen, da es trotz der Erklärungen noch Fragen gibt.
Man hat ja generell 3 Möglichkeiten der Pull Strategy (Rebase, Merge, None). Bei None kann ich gar nicht pullen. Rebase und Merge machen prinzipiell das gleiche (in Bezug auf das Pullen ... arbeiten nur intern etwas anders ... die Unterschiede sind mir bekannt und sollten für dieses Problem nicht relevant sein !?). Wichig ist mir eigentlich zu verstehen, wann ich 'None' nehme und wann ich 'Rebase'/'Merge' nehme.
Es gibt ja 2 Möglichkeiten einen Branch (von z.B. master) zu erstellen:
1. aus dem Local Bereich auf Master klicken und Branch erstellen
2. aus dem Remote Tracking Bereich auf den Master klicken und Branch erstellen
Bei 1. wird mir die Pull Strategy None vorgegeben und ich würde dadurch nie pullen können. Wähle ich 'Rebase' oder 'Merge' aus, stellt sich die Frage, mit was eGit dann merged/rebased:
a. local/master
b. remote tracking/master
c. remote tracking/neuerBranch
Wobei mir a.) irgendwie nicht logisch erscheint, da ich pullen möchte und dies wird nunmal mit remote gemacht.?
Bei 2. wird mir 'merge' vorgegeben, aber ich könnte trotzdem auch 'none' auswählen. bei None kann ich wieder nicht pullen. Wenn ich 'Merge' oder 'Rebase' auswähle, stellt sich wieder die Frage mit was:
d. remote tracking/master
e. remote tracking/neuerBranch
Hier fällt local weg, da ich es logisch finde weil ich keinen local Branch zum branchen ausgewählt habe.
D.h. wenn die anderen Teammitglieder auch mit dem Branch arbeiten sollen, muss ich zwangsläufig von "remote tracking/master" branchen, damit ich die Änderungen des Teams per pull rein bekomme????
Ähm nein. Dann bekommst du ja nur die Änderungen vom Master mit. Wenn mehre Leute an einem Branch arbeiten, dann muss ein gleichnamiger auch remote vorhanden sein. Von diesem trackst du dann. Wenn du Änderungen von Master übernehmen willst, aktulisierst du diesen, und machst lokal ein merge vom master in den aktuellen.
Also, normalerweise habe ich es so mitbekommen (Vorgehensweise aus meiner Sicht):
1. branch vom local/Master "neuerBranch"
2. Push to Upstream überträgt "neuerBranch" ins zentrale Repo
=> Ich kann "neuerBranch" nicht pullen, da pull Strategy auf "none" beim Branching
=> Meine Teammitglieder sehen "neuerBranch" und können von diesem branchen ... danach funktioniert auch pull, da Strategy auf Merge/rebase gesetzt wurde
Damit habe ich ein Problem, da ich nicht pullen kann ... meine Teammitglieder aber schon