2014-06-26 16 views
9

git 2.0 có tùy chọn cấu hình commit.gpgsign sẽ ký tất cả các cam kết.GPG ký tất cả các cam kết git không có stash

Điều này cũng sẽ áp dụng cho git stash và sẽ yêu cầu mật khẩu khóa gpg của tôi.

Có cách nào để tự động ký tất cả các cam kết, thẻ, ... nhưng loại trừ các dấu gạch ngang?

+0

GPG không có kho lưu trữ thông tin xác thực như 'ssh-agent' cho SSH không? –

+0

@Cupcake: có 'gpg-agent' sẽ lưu trữ thông tin đăng nhập, nhưng vì có một số thời gian giữa lần commit cuối cùng và stash nó sẽ (và nên) hỏi lại. – f0i

Trả lời

11

Đây là lãnh thổ bí danh:

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

GPG không có kho lưu trữ thông tin xác thực như 'ssh-agent' cho SSH? –

5

Tôi thích câu trả lời jthill, chỉ muốn cung cấp một lựa chọn hơi khác nhau, do đó bạn không cần phải học cách gõ một lệnh mới. Bạn có thể định nghĩa một hàm shell trong .bashrc của bạn như thế này:

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

Bây giờ khi bạn chạy git stash sau đó chức năng vỏ chèn các đối số phụ trước khi gọi nhị phân git.

+0

Tôi upvoted này từ lâu, nhưng tôi muốn chỉ ra rằng chỉ cần sử dụng $ 1 không hoạt động nếu bạn ăn bất kỳ tùy chọn để lệnh git chính nó, ví dụ bạn có thể 'git -C ~/khác/repo push' để chạy đẩy vào đó repo khác. – jthill

+0

@jthill Thật vậy, cảm ơn, và nếu đó là một mối quan tâm thì câu trả lời của bạn là cách tiếp cận tốt hơn. –

Các vấn đề liên quan