Benutzer-Werkzeuge

Webseiten-Werkzeuge


de:technik:gittippsundtricks

IndexDeutschTechnikGit Tipps und Tricks

Git Tipps und Tricks

Hier sind ein paar nützliche Tipps und Tricks für Git, Github, Gitlab und co zusammen gefasst.

Nützliche Befehle

git add -A
  • Fügt alle Änderungen zur Staging-Area hinzu
git add .
  • Fügt alle Änderungen ab dem aktuellen Ordner zur Staging-Area hinzu
git commit -m "Message"
  • Committed die Änderungen aus der Staging-Area

Gitignore

Mit der Datei .gitignore kann man in git Dateien und Ordner ignorieren lassen.

Dazu muss man:

  1. Dateiname/Pattern in die Datei .gitignore eintragen
  2. Datei aus dem git cache löschen mit dem Befehl:
    • git rm --cached dateiname

Jetzt wird die Datei von git ignoriert und man kann z.B. seine Konfigurationen (Tokens, Passwörter etc.) eintragen.

Mehr dazu auf git-scm.com/docs/gitignore

Public Key Login

Public Key Login über ssh ist sicherer als der Login über HTTPS.

Den Key generieren

Die SSH Keys werden standardmäßig in ~/.ssh als id_rsa und id_rsa.pub gespeichert. Wenn diese Dateien schon da sind, dann hast du wahrscheinlich bereits die Keys generiert.

Generiere den Key

ssh-keygen -t rsa -b 4096 -C "[email protected]"

Starte den ssh agent

eval $(ssh-agent -s)

Füge den Key zu Gnome-Keyring hinzu

ssh-add ~/.ssh/id_rsa

Den Key hinzufügen

Jetzt muss der Public Key, welchen wir eben in der Datei ~/.ssh/id_rsa.pub erstellt haben noch in Github/Gitlab und falls man auf einem anderen Server, auch auf diesem eingestellt werden.

Github

  1. Gehe auf Settings > SSH and GPG keys
  2. Klick auf „New SSH key“ und füge hier den Public Key aus der Datei ein

Gitlab

  1. Gehe auf Einstellungen > SSH Keys
    1. In unserem Gitlab ist es hier
  2. Füge hier in das Feld Key deinen Public Key aus der Datei ein und klicke dann auf „Add key“

Server

Den Key nutzen

Um jetzt beim git push oder git pull den SSH Key zu nutzen musst du den remote deiner repos ändern. Am besten macht du das in dem du die Repositories neu runter lädst und bei Github oder Gitlab direkt die SSH URL kopierst. Falls du das Repository bereits mit der http/https Methode gecloned hast, dann kannst du das wie folgt ändern:

git remote rm origin
git remote add origin git@github.com:Username/Repositoryname.git

Dabei musst du dann [email protected]:Username/Repositoryname.git durch den jeweils auf Github oder Gitlab angezeigten Link ersetzen.

Cache/Save HTTPS Password

Du kannst nur eine der folgenden Möglichkeiten nutzen. Die 1. mit dem Gnome-Keyring ist empfohlen.

git config --global credential.helper /usr/lib/git-core/git-credential-libsecret
  • Nutze den Gnome-Keyring zum Speichern der HTTPS Logindaten
git config --global credential.helper cache
  • Cache die HTTPS Logindaten ohne den Gnome-Keyring für 15 Minuten
git config --global credential.helper "cache --timeout=3600"
  • Cache die HTTPS Logindaten ohne den Gnome-Keyring für 1 Stunde

Signieren von Commits mit GPG

Mit dem Signieren von Commits kannst du garantieren, dass die Commits von dir gemacht wurden. Diese Anleitung ist größtenteils von hier übersetzt.

Den Key generieren

Zuerst musst du die dependencies installieren

# Ubuntu
sudo apt-get install gpa seahorse
# Mac
brew install gpg

Jetzt den GPG Key generieren

gpg --gen-key

Zeige den Key an

gpg --list-secret-keys --keyid-format LONG

Der obere Befehl sollte so etwas ausgeben:

/home/username/.gnupg/secring.gpg
-------------------------------
sec   4096R/<COPY_LONG_KEY> 2016-08-11 [expires: 2018-08-11]
uid                          User Name <[email protected]>
ssb   4096R/62E5B29EEA7145E 2016-08-11

Merk dir den COPY_LONG_KEY und ersetze ihn im folgenden Befehl durch <PASTE_LONG_KEY_HERE>

gpg --armor --export <PASTE_LONG_KEY_HERE> > gpg-key.txt

Dein (public) Key steht jetzt in der Datei gpg-key.txt

Für den nächsten Schritt brauchst du den SHORT_KEY:

gpg --list-keys --keyid-format SHORT

Das sollte sowas ausgeben:

/home/username/.gnupg/pubring.gpg
-------------------------------
pub   4096R/<COPY_SHORT_KEY> 2016-08-11 [expires: 2018-08-11]
uid                  Your Name <[email protected]>
sub   4096R/EB61969F 2016-08-11 [expires: 2017-08-11]

Jetzt musst du noch aktivieren, dass Git deinen Public Key zu deinen Commits hinzufügt

git config --global user.signingKey <PASTE_SHORT_KEY_HERE>
git config --global commit.gpgsign true

Außerdem muss die user.email mit der Email Adresse im GPG Key übereinstimmen:

git config --global user.mail <user.name@gmail.com>

Den Key hinzufügen

Jetzt muss der Public Key, welchen wir eben in die Datei gpg-key.txt geschrieben haben noch in Github/Gitlab eingestellt werden.

Github

  1. Gehe auf Settings > SSH and GPG keys
  2. Klick auf „New GPG key“ und füge hier den Public Key aus der Datei ein

Gitlab

  1. Gehe auf Einstellungen > GPG Keys
    1. In unserem Gitlab ist es hier
  2. Füge hier in das Feld Key deinen Public Key aus der Datei ein und klicke dann auf „Add key“

Nützliche Aliase

Um die Aliase hinzuzufügen musst du die Datei ~/.gitconfig editieren und folgenden Block unter den anderen Blöcken hinzufügen:

~/.gitconfig
[alias]
	l = log --all --graph --full-history --pretty=format:'%C(auto)%h%C(auto)%d %s %C(dim white)(%aN, %ar)'
	ls = ls-files
	s = status

Erklärung der Aliase

  • l - Zeigt einen Graphen für die Branches an
  • ls - Listet alles Dateien aus dem Git Projekt auf
  • s - Kurzform für status

Troubleshooting

Gnome Keyring hat falsche capabilities

Fehlermeldung

gnome-keyring-daemon: insufficient process capabilities, unsecure memory might get used

Lösung

Gebe diese Zeile in deinem Terminal ein:

sudo setcap cap_ipc_lock=+ep `which gnome-keyring-daemon`
de/technik/gittippsundtricks.txt · Zuletzt geändert: 2018/05/05 13:54 (Externe Bearbeitung)