Sie zeigen eine alte Version dieser Seite an. Zeigen Sie die aktuelle Version an.

Unterschiede anzeigen Seitenhistorie anzeigen

« Vorherige Version anzeigen Version 4 Nächste Version anzeigen »

Basiskonfiguration git

Es bietet sich an in seinem Home Verzeichnis (Linux: /home/<username>) eine Datei '.gitconfig' anzulegen. Meine Datei sieht wie folgt aus:

[user]
        name = <mein_name>
        email = <mein_name>@gmx.de

[diff]
        color = auto

[page]
        color = true

[status]
        color = auto

[core]
        editor = kate

[merge]
        tool = kdiff3

[color]
        ui = auto
[push]
default = matching

Rebase als 'pull strategy'

Hat man aus bitbucket.org zum ersten mal ausgecheckt, dann hat man zwar alle 'remote Branches' (git branch -r), aber nur einen lokalen 'tracking branch' (git branch), nämlich den der 'remotes/origin/master' folgt: 'heads/master' oder kurz 'master'.

Die anderen 'tracking branches' müssen also noch erstellt werden! In eclipse/sts geht das wie folgt:

Project Explorer -> nuclos (Hauptprojekt) -> rechte Maustaste -> Team -> Switch to -> New branch ...



Hier wird also der richtige 'remote branch' gewählt. Eclipse/STS schlägt dann automatisch einen Namen für den lokalen 'tracking branch' vor. Alternativ funktioniert's auch auf der Kommandozeile mit 'git branch -l -t 3.8 origin/3.8'.

Sehr wichtig ist es, als 'Pull stategy' Rebase auszuwählen (wie im Screenshot geschehen), da so unnötige 'Merges' durch Pull vermieden werden! Genauere Informationen hierzu finden sich unter [http://git-scm.com/book/de/Git-Branching-Rebasing] und [http://www.jarrodspillers.com/2009/08/19/git-merge-vs-git-rebase-avoiding-rebase-hell/] (beides Pflichtlektüre für Entwickler!).

Diese Erstellung des 'tracking branch' muss nur einmal durchgeführt werden. Danach finden man die schon erstellten 'tracking branches' in Eclipse/STS direkt im 'Switch to' Menü:



Git intern fügt die Erstellung eines 'tracking branch' einen Abschnitt ähnlich dem folgenden in die Datei '<repository>/.git/config' ein:

[branch "3.8"]
        remote = origin
        merge = refs/heads/3.8
        rebase = true

Der entscheidene Grund für diese Mail ist, dass die letzte Zeile 'rebase = true' für den Branch 'master' nicht gesetzt ist, aber gesetzt sein sollte. Bitte fügt daher alle diese Zeile in der Datei <repository>/.git/config hinzu. Der Abschnitt sollte dann insgesamt wie folgt aussehen:

[branch "master"]
        remote = origin
        merge = refs/heads/master
        rebase = true

Weitere Informationen in [http://stackoverflow.com/questions/11955305/what-is-the-meaning-of-pull-strategy-when-creating-a-branch-with-egit].

Rebase als Standard 'pull strategy'

Es ist auch möglich (und eine Überlegung wert), für alle 'tracking branches' rebase als Standard zu benutzen! Dazu muss man folgende Kommandozeile benutzen:

cd <repository> git config branch.autosetuprebase always

Weitere Informationen liefert [http://alblue.bandlem.com/2011/06/git-tip-of-week-pulling-and-rebasing.html].

  • Keine Stichwörter