Skip to main content

Ansicht: Git-Branches

Symbol: _git_icon_branch.png

Entsprechender Git-Befehl: git branch

Funktion: In der Ansicht werden die lokalen Git-Branches dargestellt und verwaltet. Es kann sich um Branches handeln, die bereits einen Remote-Branch tracken, oder um Branches, die rein lokal existieren und keinerlei Verbindung zu einem Remote-Repository beinhalten.

Aufruf: Menü Git → Branches

Voraussetzung: Im Repository existiert mindestens 1 Commit.

_git_icon_refresh.png

Die Ansicht wird aktualisiert.

_git_icon_branch.png Kopieren (git copy)

Öffnet den Dialog Neuen Branch erzeugen zum Anlegen eines neuen lokalen Branches als Kopie des gerade selektierten lokalen Branches (s.u.)

_git_icon_delete_branch.png Löschen (git branch -D)

Der selektierte Branch wird gelöscht, auch wenn der Branch noch nicht vollständig gemergt wurde.

Hinweis: Der aktuelle Branch kann nicht gelöscht werden.

_git_icon_checkout_branch.png Checkout (git checkout)

Durch die Checkout-Operation wird der selektierte Branch zum aktuellen Branch. Das heißt, die Git-Operationen wirken auf die Inhalte dieses Branches, die zu diesem Zweck ins lokale Git-Repository („Arbeitsverzeichnis“) geladen werden.

Ein Checkout wird durch uncommittete Änderungen verhindert.

Wenn es sich um einen Remote-Branch, also Eintrag unter Remote (<n>) handelt, gibt es folgende Möglichkeiten:

  • Ein Dialog öffnet sich mit der Meldung: Dieser Remote-Branch wird bereits vom lokalen Branch ‚master‘ getrackt, der statt dessen ausgecheckt wird. Branch-Name „origin/master“.

    In diesem Fall gibt es bereits einen lokalen Remote-Branch (unter Lokal (<n>)), der den gerade selektierten Remote-Branch trackt und sich somit mit diesem über Pull und Push austauschen kann. Dann wird dieser lokale Branch zur Bearbeitung ins Arbeitsverzeichnis geladen. Möglicherweise wird der Checkout zunächst verweigert, weil es durch lokale Änderungen, die direkt im Arbeitsverzeichnis vorgenommen wurden, zu Inkonsistenzen kommt. Mit der Option Forcen können solche Inkonsistenzen zunächst akzeptiert werden und das Auschecken dennoch durchgeführt werden.

  • Ein Auschecken dieses Remote-Branches erzeugt einen entsprechenden lokalen Tracking-Branch. Dieser Name für den lokalen Branch ist bereits vergeben. Die Operation wird sehr wahrscheinlich fehlschlagen.

    In diesem Fall gab es noch keinen lokalen Remote-Branch, der den gerade selektierten Remote-Branch trackt. CODESYS Git will einen lokalen Branch anlegen, allerdings ist der Name dafür bereits vergeben. Mit der Option Forcen kann der Vorgang dennoch erzwungen werden.

    Achtung: Der zuvor bereits vorhandene Branch wird dadurch überschrieben!

  • Es gab noch keinen lokalen Remote-Branch. Kein Tracking. Dieser wird jetzt angelegt und als „aktueller“ gesetzt und das Tracking aktiviert. Somit wird sofort auf diesem Branch weitergearbeitet.

_git_icon_merge_branch.png Merge

(git merge)

Mit einem Klick auf die Schaltfläche wird der Befehl direkt ausgeführt. Alternativ können Sie Optionen dafür einstellen. Wählen Sie dazu über die Pfeiltaste _cds_icon_arrow_down.png den Befehl Mergen mit Optionen. Der Dialog Branch mergen öffnet sich, wo Sie die für die aktuelle Merge-Aktion gültigen Optionen wählen können.

Für das Mergen sind der Name und die Email-Adresse des Benutzers erforderlich. Diese Informationen werden aus den Git-Einstellungen übernommen. Wenn dies nicht möglich ist, werden sie in einem Dialog abgefragt. Benutzername und Email-Adresse können im Dialog Branch mergen geändert werden.

Wenn Sie die Nachfrage (Meldungsbox), ob wirklich gemergt werden soll, bestätigen, werden die Commits des gerade selektierten Branches in den aktuellen Branch gemergt. Der aktuelle Branch ist derjenige, dessen Stand gerade im Arbeitsverzeichnis liegt. (Haken in der Spalte Aktueller)

Wenn beim Mergen Konflikte oder Relationship Issues auftreten, müssen diese zunächst aufgelöst werden. Je nach Fall und den in der Ansicht Git-Branches eingestellten Merge-Optionen laufen dazu automatisierte Aktionen, oder es sind händische Aktionen nötig. Wenn ein Konflikt nicht automatisch aufgelöst werden kann, wird dies in der Ansicht Git-Status & Vormerken angezeigt. Beachten Sie zur Konfliktlösung im ersten Schritt die angebotenen Kontextmenübefehle in der Ansicht Git-Status & Vormerken.

Solange der Merge-Vorgang nicht abgeschlossen ist, erscheint die Statusinfo Merging in der Titelzeile der Ansicht sowie in der Taskleiste.

Für die Aktion Merge sind der Name und die Email-Adresse des Benutzers erforderlich. Diese Informationen werden aus den-Git-Projekteinstellungen übernommen. Wenn dies nicht möglich ist, werden sie in einem Dialog abgefragt.

_git_icon_set_upstream_branch.png Upstream: Set/Clear

git push -u origin local-branch

git branch --set-upstream-to <origin/remote-branch>

Öffnet den Dialog Upstream-Remote für Branch setzen

Hier wird auf dem angebundenen Remote-Repository (üblicherweise „origin“ genannt, das beispielsweise auf einem Server liegt) ein dem lokalen Branch entsprechender Branch angelegt und die Verknüpfung mit diesem eingerichtet.

_git_icon_track_branch.png Branch tracken

git branch --track

Öffnet den Dialog Remote-Branch tracken

Hier kann der lokale Branch mit einem verfügbaren Stellvertreter eines Remote-Repositorys (Remote-Branch) verknüpft werden. Dies ermöglicht, die Commits mit Hilfe der Git-Operationen Pull und Push zwischen dem lokalen und dem Remote-Repository auszutauschen.

_git_icon_pull.png Pull

(git pull)

_git_icon_pull.png Pull mit Optionen(

Der Stand des getrackten Remote-Repository-Branches wird in den lokalen Branch abgerufen (git fetch) und zusätzlich auch mit diesem gemergt (git merge). Voraussetzung: Der lokale Branch trackt den Remote-Branch des Remote-Repositorys.

Für die Aktion Pull sind der Name und die Email-Adresse des Benutzers erforderlich. Diese Informationen werden aus den Anmeldeinformationen übernommen, die auf dem Computer hinterlegt sind. Wenn dies nicht möglich ist, werden sie im Dialog Git pull <remote branch> neu abgefragt. Für weitere Informationen zu den Anmeldedaten für ein Remote-Repository sehen Sie: Anmeldedaten erforderlich

Mit dem Befehl Pull mit Optionen wird dieser Dialog explizit geöffnet, um Einstellungen bearbeiten zu können. Wenn die Option Merken für die Anmeldedaten Name und E-Mail aktiviert ist, werden die Einstellungen aus dem Dialog in der Git-Konfigurationsdatei .git/config im lokalen Repository gespeichert.

_git_icon_push.png Push

(git push)

Wenn es sich bei dem selektierten Branch nicht um einen Tracking-Branch handelt, öffnet sich der Dialog Push Branch. Hier geben Sie den Remote-Branch an, in den gemergt werden soll. Die Commits des lokalen Branches werden in den entsprechenden Branch im Remote-Repository gepusht.

Falls es sich bei dem selektierten Branch um einen Tracking-Branch handelt, wird die Aktion unmittelbar ausgeführt. Es erscheint kein Dialog.

Vergleichen

Der selektierte Branch wird mit dem letzten Stand des Projekts in der Projektablage verglichen und die Unterschiede werden in der Vergleichsansicht dargestellt.

Wenn zwei Branches ausgewählt sind, werden diese verglichen.

Branches filtern: LokallRemote

Mit einem Klick auf die Schaltflächen Local (<n>) oder/und Remote (<n>) wird in der Tabelle die Anzeige von lokalen Branches oder/und Remote-Branches („Stellvertreter“ der Branches, die im Remote-Repository liegen) aktiviert oder deaktiviert.

Tabelle

Aktueller: standard icon: Dies ist der lokale Branch, auf dem aktuell gearbeitet wird. Mit Hilfe von Checkout wird ein Branch zum aktuellen gemacht. Das Arbeitsverzeichnis (Git-Repository) enthält dann gerade den Stand dieses Branches.

Remote: standard icon: Dies ist ein „Remote-Branch“, ein Branch, der im Remote-Repository vorliegt. Der Eintrag hier dient als Stellvertreter dieses Branches, beispielsweise origin/master als Stellvertreter-Branch des Remote-Repositorys.

Tracking: standard icon: Der lokale Branch trackt einen Remote-Branch, ist also mit diesem für einen Austausch der Commits via Git-Operationen verbunden.

Name: Name des Branches

Kanonischer Name: Eindeutiger Name des Branches

Beispiel: refs/heads/master

Remote: Name des Remote-Repositorys, das der Remote-Branch referenziert (üblicherweise origin)

Upstream-Branch, kanonischer Name

Beispiel: refs/heads/master

Tracked Branch, Name: Name des Remote-Branches, der getrackt wird

Beispiel: origin/master

Tracked Branch, kanonischer Name: Kanonischer Name des Remote-Branches, der getrackt wird. Beispiel remotes/origin/master

Wenn ein Branch einen Remote-Branch trackt, sind folgende Infos relevant. Achtung: Diese Anzeige wird nur aktualisiert, wenn ein Fetch ausgeführt wird:

Commits voraus: Anzahl der Commits auf dem lokalen (tracking) Branch, mit denen er zeitlich dem Remote-Branch "voraus" ist

Commits hinterher: Anzahl der Commits, die der lokale (tracking) Branch gegenüber dem Remote-Branch im Rückstand ist.

Dialog: Neuen Branch anlegen

Entsprechender Git-Befehl: git branch --copy

Symbol: _git_icon_branch.png

Funktion: Anlegen eines neuen lokalen Git-Branches

Aufruf: Befehl Kopieren in der Ansicht Lokale Branches

Voraussetzung: Ein lokaler Branch existiert bereits.

Source-Branch

Name des Branches, der kopiert wird

Neuer Branch-Name

Eingabefeld für den neuen Namen

Erzwingen

standard icon: Wenn es zum Zeitpunkt eines Checkout nicht committete Änderungen gibt, kann man standardmäßig nicht den Branch wechseln. Mit aktivierter Option Erzwingen wird dies jedoch erzwungen.

Checkout

standard icon: Der neue Branch wird beim Anlegen sofort ausgecheckt und erhält einen Haken bei Aktueller.

Dialog: Branch mergen

Symbol: _git_icon_merge_branch.png

Funktion: Einstellen der Merge-Optionen für den aktuellen Merge-Vorgang. Diese Optionen sind in den CODESYS-Optionen vordefiniert und können für den Einzelfall hier im Dialog Branch mergen verändert werden.

Aufruf: Schaltfläche Merge im Dialog Branches, Befehl Mergen mit Optionen

Voraussetzung: In der Ansicht Git-Branches ist ein Branch selektiert, der in den aktuell ausgecheckten Branch gemergt werden soll.

Branch, der gemergt werden soll

Der in der Ansicht Git-Branches selektierte Branch

Benutzername und Email-Adresse

Wenn der Text aufgeklappt wird, können Name und E-Mail geändert werden.

Der Inhalt der Felder wird aus den Git Einstellungen user.name und user.email vorbelegt. Wenn diese Git-Einstellungen nicht vorhanden sind, müssen die Werte durch den Benutzer eingegeben werden.

Git Merge-Optionen

Merge-Konflikt-Strategie

Siehe für Informationen: Optionen: Git

Fast Forward-Strategie

Siehe für Informationen: Optionen: Git

Commit bei Erfolg

Wenn das Mergen erfolgreich war, werden die resultierenden Änderungen automatisch committet.