git
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| git [2022-03-04 19:59:14] – [Linux] david | git [2024-06-03 12:12:13] (aktuell) – manfred | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Git ====== | ====== Git ====== | ||
| + | |||
| + | Hilfe: | ||
| + | > git --help | ||
| + | > git status | ||
| + | > git pull | ||
| + | > git add * | ||
| + | > git push | ||
| + | > git commit -m " | ||
| Git repository klonen (SSH & HTTPS): | Git repository klonen (SSH & HTTPS): | ||
| Zeile 9: | Zeile 17: | ||
| > git config --system init.defaultBranch main | > git config --system init.defaultBranch main | ||
| - | Es gibt 3 Konfigurationsmöglichkeiten: | + | Es gibt 3 Konfigurationsmöglichkeiten: |
| - | * '' | + | |
| - | * '' | + | |
| - | * '' | + | |
| ===== Git Konfiguration ===== | ===== Git Konfiguration ===== | ||
| + | |||
| + | |||
| + | ==== Pfade ==== | ||
| + | |||
| + | * **Wichtig**: | ||
| + | * mehr Informationen: | ||
| + | * Einstellungen nachvollziehen: | ||
| + | |||
| + | ^ Scope ^ Allgemein | ||
| + | | System | ||
| + | | Global | ||
| + | | Local | '' | ||
| + | | Worktree | '' | ||
| + | |||
| + | * System: unter linux gibt diese beiden verbreiteten pfade: ''/ | ||
| + | * Global: '' | ||
| + | * Local: standard, wenn man keine option angibt (z.B. '' | ||
| + | * Worktree: sehr selten genutzt, siehe docs | ||
| Zeile 185: | Zeile 209: | ||
| ==== Linux ==== | ==== Linux ==== | ||
| - | < | + | < |
| [include] | [include] | ||
| path = .gitconfig.d/ | path = .gitconfig.d/ | ||
| Zeile 194: | Zeile 218: | ||
| autocrlf = false | autocrlf = false | ||
| safecrlf = false | safecrlf = false | ||
| - | symlinks | + | fsmonitor |
| fscache = true | fscache = true | ||
| + | symlinks = false | ||
| preloadindex = true | preloadindex = true | ||
| editor = code --wait | editor = code --wait | ||
| - | attributesfile = ~/.gitattributes | + | attributesfile = .gitattributes |
| [init] | [init] | ||
| defaultBranch = main | defaultBranch = main | ||
| [commit] | [commit] | ||
| gpgsign = true | gpgsign = true | ||
| + | [fetch] | ||
| + | prune = true | ||
| [pull] | [pull] | ||
| rebase = true | rebase = true | ||
| + | [push] | ||
| + | autoSetupRemote = true | ||
| + | [log] | ||
| + | abbrevCommit = true | ||
| + | [format] | ||
| + | pretty = oneline | ||
| [credential] | [credential] | ||
| helper = manager-core | helper = manager-core | ||
| - | [format] | + | gitHubAuthModes |
| - | pretty | + | gitLabAuthModes |
| - | [log] | + | |
| - | abbrevCommit | + | |
| [http] | [http] | ||
| sslbackend = openssl | sslbackend = openssl | ||
| [gpg] | [gpg] | ||
| program = gpg | program = gpg | ||
| - | [diff] | ||
| - | tool = vscode | ||
| [diff " | [diff " | ||
| textconv = astextplain | textconv = astextplain | ||
| [difftool] | [difftool] | ||
| prompt = true | prompt = true | ||
| + | [mergetool] | ||
| + | prompt = true | ||
| + | [diff] | ||
| + | tool = vscode | ||
| + | [merge] | ||
| + | tool = vscode | ||
| [difftool " | [difftool " | ||
| cmd = code --wait --diff $LOCAL $REMOTE | cmd = code --wait --diff $LOCAL $REMOTE | ||
| keepBackup = false | keepBackup = false | ||
| - | [merge] | ||
| - | tool = vscode | ||
| - | [mergetool] | ||
| - | prompt = true | ||
| [mergetool " | [mergetool " | ||
| cmd = code --wait $MERGED | cmd = code --wait $MERGED | ||
| Zeile 235: | Zeile 266: | ||
| </ | </ | ||
| - | < | + | < |
| [alias] | [alias] | ||
| a = add | a = add | ||
| Zeile 256: | Zeile 287: | ||
| </ | </ | ||
| - | < | + | < |
| [user] | [user] | ||
| name = Username | name = Username | ||
| Zeile 266: | Zeile 297: | ||
| ==== Windows ==== | ==== Windows ==== | ||
| - | folgende Änderungen an der Linux Konfiguration vornehmen (**sslbackend** ist optional, da **openssl** auch unter win funktioniert): | + | **Achtung**: keine vollständige Konfiguration, nur Änderungen gegenüber der Datei für Linux! |
| - | < | + | Folgende Änderungen an der Linux Konfiguration vornehmen: |
| + | |||
| + | Diese Änderungen sind optional: | ||
| + | * '' | ||
| + | * Um das Diff- bzw. Merge-Tool von Visual Studio zu benutzen: '' | ||
| + | |||
| + | < | ||
| [http] | [http] | ||
| sslbackend = schannel | sslbackend = schannel | ||
| [gpg] | [gpg] | ||
| program = " | program = " | ||
| + | [diff] | ||
| + | tool = vsdiffmerge | ||
| + | [merge] | ||
| + | tool = vsdiffmerge | ||
| + | [difftool " | ||
| + | cmd = \" | ||
| + | keepBackup = false | ||
| + | [mergetool " | ||
| + | cmd = \" | ||
| + | keepBackup = false | ||
| + | trustExitCode = true | ||
| + | |||
| </ | </ | ||
| Zeile 364: | Zeile 413: | ||
| ==== GPG konfigurieren ==== | ==== GPG konfigurieren ==== | ||
| - | * immer lange version der keyid anzeigen | + | siehe [[:: |
| - | * loopback für pinentry benutzen | + | |
| - | <code c ~/.gnupg/gpg.conf> | + | gpg programm unter linux: |
| - | keyid-format long | + | |
| - | pinentry-mode loopback | + | |
| - | </ | + | |
| - | | + | **stark empfohlen, da das in git integrierte |
| - | | + | gpg programm unter windows ('' |
| - | + | > git config --global | |
| - | <code c ~/.gnupg/gpg-agent.conf> | + | |
| - | default-cache-ttl 7200 | + | |
| - | default-cache-ttl-ssh 1800 | + | |
| - | max-cache-ttl 28800 | + | |
| - | max-cache-ttl-ssh 7200 | + | |
| - | allow-loopback-pinentry | + | |
| - | </ | + | |
| - | + | ||
| - | **Unter Windows: ** Umgebungsvariable anlegen | + | |
| - | | + | |
| - | + | ||
| - | evtl. Dateien vom alten ins neue dir verschieben (powershell commands) | + | |
| - | > mv $env:userprofile/ | + | |
| - | > rm $env: | + | |
| - | + | ||
| - | gpg agent restart bzw. start/stop (z.B. bei dem error: **gpg: can't connect to the agent: Invalid value passed to IPC**) | + | |
| - | > gpg-connect-agent | + | |
| - | > gpg-connect-agent killagent | + | |
| - | + | ||
| - | das '' | + | |
| - | + | ||
| - | **gpg testen** | + | |
| - | > echo "test" | gpg --clearsign | + | |
| - | + | ||
| - | Wenn das Signieren mit GPG nicht geht, liegt es womöglich daran, | + | |
| - | dass GPG die TTY nicht findet und deshalb nicht nach der Passphrase fragen kann | + | |
| - | > echo ' | + | |
| - | + | ||
| - | gpg key paar generieren: | + | |
| - | > gpg --full-generate-key | + | |
| - | + | ||
| - | * RSA and RSA und 4096 auswählen | + | |
| - | * GitHub Namen und GitHub E-Mail eintragen | + | |
| - | + | ||
| - | gpg key editieren: | + | |
| - | > gpg --edit-key XXXXXXXXXXXXXXXX | + | |
| - | + | ||
| - | gpg public key auflisten | + | |
| - | > gpg -k --keyid-format=long | + | |
| - | + | ||
| - | gpg private key auflisten | + | |
| - | > gpg -K --keyid-format=long | + | |
| gpg **signingkey** für git herausfinden (16-stellig, | gpg **signingkey** für git herausfinden (16-stellig, | ||
| Zeile 431: | Zeile 435: | ||
| > git config --global commit.gpgsign true | > git config --global commit.gpgsign true | ||
| - | gpg key im armor (ascii) format exportieren (z.b. für github): | + | gpg public |
| > gpg --armor --export XXXXXXXXXXXXXXXX | > gpg --armor --export XXXXXXXXXXXXXXXX | ||
| - | |||
| - | gpg key exportieren und als anderer user wieder importieren (wenn man ohne '' | ||
| - | > gpg --armor --export-secret-key XXXXXXXXXXXXXXXX > / | ||
| - | > su - | ||
| - | > gpg --import / | ||
| - | > rm / | ||
| - | |||
| - | gpg key vertrauen (nach import erforderlich) | ||
| - | > gpg --edit-key XXXXXXXXXXXXXXXX | ||
| - | > gpg> trust | ||
| - | > gpg> save | ||
| - | | ||
| - | |||
| - | gpg Key lokal exportieren und auf anderer maschine importieren | ||
| - | > gpg --armor --export-secret-key XXXXXXXXXXXXXXXX | ssh other-machine gpg --import | ||
| - | |||
| - | gpg key auf anderer maschine exportieren und lokal importieren | ||
| - | > ssh other-machine gpg --armor --export-secret-key XXXXXXXXXXXXXXXX | gpg --import | ||
| - | |||
| - | gpg programm unter linux: | ||
| - | > git config --global gpg.program gpg | ||
| - | |||
| - | **stark empfohlen, da das in git integrierte gpg nicht aktuell ist:** | ||
| - | gpg programm unter windows ('' | ||
| - | > git config --global gpg.program " | ||
/home/http/wiki/data/attic/git.1646423954.txt · Zuletzt geändert: von david
