2014-06-26 27 views
9

git 2.0 ma opcję konfiguracji commit.gpgsign, która będzie podpisywać wszystkie zatwierdzenia.GPG podpisać wszystkie git zobowiązuje się bez ukryć

Obowiązuje to również dla git stash i poprosi o podanie hasła do mojego klucza gpg.

Czy można automatycznie podpisywać wszystkie zatwierdzenia, tagi, ... ale wykluczyć skrytki?

+0

Czy GPG nie ma magazynu referencyjnego takiego jak 'ssh-agent' dla SSH? –

+0

@Cupcake: istnieje 'gpg-agent', który buforuje poświadczenia, ale ponieważ normalnie jest jakiś czas pomiędzy ostatnim zatwierdzeniem a magazynem, to będzie (i powinien) zapytać ponownie. – f0i

Odpowiedz

11

To alias terytorium:

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

Czy GPG nie ma magazynu poświadczeń takiego jak 'ssh-agent' dla SSH? –

5

Lubię odpowiedź jthill, tuż chciał dostarczyć nieco inną opcję, dzięki czemu nie trzeba się uczyć, aby wpisać nową komendę. Można zdefiniować funkcję powłoki w swojej .bashrc tak:

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

Teraz po uruchomieniu git stash wówczas funkcja powłoki wstawia dodatkowe argumenty przed wywołaniem binarne git.

+0

Ja przegłosowałem to dawno temu, ale chcę zaznaczyć, że samo użycie 1 $ nie działa, jeśli dodasz opcje do samego polecenia git, na przykład możesz uruchomić 'git -C ~/other/repo push' by uruchomić popchnąć to inne repozytorium. – jthill

+0

@jthill Rzeczywiście, dzięki, a jeśli to jest problem, to twoja odpowiedź jest lepszym podejściem. –