Git-tfs

Git statt TFS?

Wer gerne mit git arbeitet, wünscht sich oft eine Brücke von anderen Versionsmanagement-Werkzeugen zu git. So gibt es zur Nutzung von Subversion (snv) die Möglichkeit git-svn zu nutzen. Was aber, wenn die Serverseite TFS anbietet?

Installation

Git für Windows wird einfach via Installer in das System gebracht. Eine Brücke zu TFS fehlt jedoch noch.

Abhilfe schafft hier das Werkzeug git-tfs. Zur Installation muss lediglich die Datei heruntergeladen und entpackt werden. Anschließend fügen wir das Verzeichnis der PATH Variable hinzu.

Nun kann das installierte git einen weiteren Befehl: git tfs

Klonen

Als erstes schauen wir uns an, welche TFS Projekte/Branches auf dem Server liegen:

git tfs list-remote-branches http://MEIN-TFS-SERVER:8080/tfs/

Wenn wir das Projekt gefunden haben, das wir brauchen, klonen wir es uns - und zwar mit allen Branches:

git tfs clone  --with-branches http://MEIN-TFS-SERVER:8080/tfs/ $/MeinProjekt

Je nach Projektgröße, kann dieser Schritt einige Zeit dauern.

Arbeiten mit git

Die Arbeit mit git erfolgt wie gewohnt, lediglich das “pushen” auf den Server bzw. das “pullen” entfällt. Hierzu müssen wir abermals git-tfs aufrufen:

TFS nach Git

Wenn wir uns die Änderungen von Teamkollegen abholen wollen, erfolgt dies mit folgendem Befehl:

git tfs pull

Um dies für alle Branches durchzuführen, nutzen wir:

git tfs pull --all

Um dabei statt eines Merge einen Rebase durchzuführen, nutzen wir:

git tfs pull --rebase

Git nach TFS

Nachdem wir eine (oder mehrere) Aufgaben erledigt haben wollen wir unsere Commits auch an den TFS übertragen. Gerade bei TFS Konfigurationen, die Anforderungen an einen Checkin haben (z.B. “muss mit einem Task verbunden sein”) bietet sich das “Checkintool” an. Diese Programm erlaubt es komfortabel Git-Commits auf den TFS Server zu bringen und dabei TFS Elemente (z.B. Tasks) zu verlinken.

git tfs checkintool

Alternativen

Wer unter einem anderen Betriebssystem als Windows arbeitet, kann Microsofts eigene Brücke namens git-tf(!) nutzen. Diese in Java geschriebene Brücke funktioniert ähnlich git-tfs, bietet jedoch kein “Checkintool”.

Fazit

Git-tfs erlaubt es extrem einfach eine transparente Brücke zwischen TFS und Git zu nutzen. Wer Nicht-Windows Betriebssysteme nutzt, kann mit git-tf ebenfalls mit einem TFS zusammen arbeiten.