Table of Contents

Git

Some information about git.

Some useful commands

Working with branches

Die wichtigsten Git-Kommandos für Einsteiger Good (and short) description by Thomas Leister

The following is a short citation from it.

Nehmen wir an, ein Fehler wurde gemeldet und ihr wollt diesen Beheben. Ihr erstellt euch für euren Bugfix zuerst einen neuen, lokalen Branch „bugfix“, der aus dem master-Zweig (aktuelle, fertige Version) auszweigt:

git checkout -b bugfix master

Wenn ihr jetzt „git“ Status aufruft, wird euch angezeigt, dass ihr euch auf dem „bugfix“-Versionszweig befindet. Ihr könnt jetzt eure Änderungen am Code durchführen, geänderte und hinzugefügte Dateien stagen und einen Commit erstellen:

git add .
git commit -m "Fixes bug xy"

Falls ihr euren Branch auch anderen Entwicklern auf dem Server bereitstellen wollt, könnt ihr optional ein

git push -u origin bugfix

ausführen. Wenn ihr alleine an dem Bugfix arbeitet, ist das aber nicht nötig. In dem Fall bleibt euer Branch lokal auf dem Rechner. Der Commit auf dem bugfix-Branch ist erstellt – jetzt wird wieder in den master-Branch gewechselt:

git checkout master

… und die Änderungen aus eurem bugfix-Branch werden darauf angewendet:

git merge bugfix

Zum Schluss noch ein

git push

… um den aktualisierten master-Branch auf dem Server zu aktualisieren. Euer bugfix-Branch wird nun nicht mehr benötigt und kann gelöscht werden:

git branch -d bugfix

Allgemeiner Workflow

Während der Entwicklungsarbeit wird euer Workflow meistens in etwa so aussehen:

1. Aktuellen master-Branch vom Server downloaden (vorher mit git status sicherstellen, dass man sich auf dem master-Branch befindet. Wenn nicht: git checkout master):
git pull

2. Einen neuen Branch für das kommende Feature anlegen:
git checkout -b meinfeature master

3. Änderungen am Code durchführen

4. Geänderte und neue Dateien stagen:
git add .

5. Änderungen committen:
git commit -m „Changes xyz“

6. Jetzt den Branch auf den Server laden, wenn gewünscht:
git push -u origin meinfeature

7. … oder direkt in dem master wechseln:
git checkout master

8. (nochmals aktuellen Code ziehen – zur Sicherheit)
git pull

9. Eigenen Code mit master zusammenführen:
git merge meinfeature

10. Nicht mehr benötigten Branch löschen:
git branch -d meinfeature

11. Aktualisierten master auf den Server pushen:
git push

12. Fertig :)

Host remote repository on local file system

Create local repository:

cd myworkspace
git init

Init remote (bare) repo

cd repos # change to whichever directory you like
git init --bare myrepo.git

Add remote origin to local repo

cd myworkspace # go back to local workspace
git remote add origin /path/to/repos/myrepo.git

Neue Repo auf der Diskstation anlegen:

ssh admin@diskstation
cd /volume1/share/git_repos/
git init --bare --shared myrepo.git

or (check first the first!)

ssh admin@diskstation
cd /volume1/share/git_repos/
mkdir myrepo.git
cd myrepo.git
git init --bare --shared

Copy local repo to server as bare repo

git clone --bare myprojectrepo myprojectrepo.git
cp -R myprojectrepo /media/diskstation/git_repos

Merging vs. Rebasing

A short summary of an article from Atlassian Tutorial.

Git GUI Clients

https://git-scm.com/download/gui/windows

https://blog.devart.com/best-git-gui-clients-for-windows.html

GitHub Desktop

https://github.com/desktop/desktop

Eclipse integration EGit

https://wiki.eclipse.org/EGit/User_Guide

Very short intro by Roger Dudler

http://nfarina.com/post/9868516270/git-is-simpler - relatively short intro. I'm stopped at The So-Called "Object Database"

Git Magic - big “book”

Oh my Git! - an online game to learn Git

Getting Git Right: Learn Git with Tutorials, News and Tips - an intro (or a link collection?) by Atlassian

Workflows

A successful Git Branching Model by Vincent Driessen → an article about “Gitflow”
Comparing Workflows tutorial by Atlassian
Git Workflows That Work by Spencer Christensen
Git-Workflows einfach erklärt

http://think-like-a-git.net/resources.html

My Repos

AvrilServer on kalaschnikow2017 (Web application)

origin

ssh:/ /kalaschnikow@diskstation/volume1/share/git_repos/AvrilServer.git (remove blank between slashes)

avril on kalaschnikow2017 (Android app)

origin

ssh:/ /kalaschnikow@diskstation:22/volume1/share/git_repos/avril.git (remove blank between slashes)

jrserver on kalaschnikow2017

origin

http://gitlab.wialon-consulting.de:8080/root/jrserver