2014-06-26 12 views
9

git 2.0 hat die Konfigurationsoption commit.gpgsign, die alle Commits signiert.GPG signieren alle git commits ohne stash

Dies gilt auch für git stash und wird nach dem Passwort meines GPG-Schlüssels fragen.

Gibt es eine Möglichkeit, alle Commits, Tags, ... automatisch zu signieren, aber Stashes auszuschließen?

+0

Hat GPG keinen Anmeldedatenspeicher wie 'ssh-agent' für SSH? –

+0

@Cupcake: Es gibt 'gpg-agent', der die Anmeldeinformationen zwischenspeichert, aber da normalerweise zwischen dem letzten Commit und dem Versteck einige Zeit liegt, wird (und sollte) es erneut gefragt werden. – f0i

Antwort

11

Dies ist alias Gebiet:

git config --global alias.stashq '-c commit.gpgsign=false stash' 
+0

Hat GPG keinen Anmeldedatenspeicher wie 'ssh-agent' für SSH? –

5

I jthill Antwort mag, nur eine etwas andere Möglichkeit bieten wollte, so dass Sie nicht lernen müssen, um einen neuen Befehl einzugeben.

git() { 
    case $1 in 
    stash) set -- -c commit.gpgsign=false "[email protected]" ;; 
    esac 
    command git "[email protected]" 
} 

Wenn Sie jetzt git stash dann die Shell-Funktion fügt die zusätzlichen Argumente vor dem Aufruf des git binary laufen: Sie können eine Shell-Funktion in Ihrem .bashrc wie folgt definieren.

+0

Ich habe dies vor langer Zeit hochgestuft, aber ich möchte darauf hinweisen, dass die Verwendung von $ 1 nicht funktioniert, wenn Sie dem Befehl git selbst Optionen hinzufügen, zum Beispiel können Sie 'git -C ~/other/repo push' ausführen schieben Sie das andere Repo ein. – jthill

+0

@jthill In der Tat, danke, und wenn das ein Problem ist, dann ist Ihre Antwort der bessere Ansatz. –

Verwandte Themen