5

gotOK 私は Git に関しては初心者です。そこで、Scott Chacon の Pro Git を読むことにしました。ところで素晴らしい本、強くお勧めします。

とにかく署名付きタグに関するセクションにたどり着きました。GPG でタグに署名するには、私が行っている秘密鍵を設定する必要があります。しかし、私が走ったとき:

git tag -s v1.6 -m "my signed 1.6 tag"

私は以下を得ました:

C:\Users\Name\Desktop\git>git tag -s v1.6 -m "my signed 1.6 tag"
gpg: error loading `iconv.dll': The specified module could not be found.

gpg: please see http://www.gnupg.org/download/iconv.html for more information
gpg: skipped "Name <name@gmail.com>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
error: unable to sign the tag

そのため、エラーメッセージで指示されたことを実行し、リンクに移動して指示に従いました. iconv.dll を gpg.exe を含むフォルダー (\Git\bin) にコピーしました。コマンドを再度実行すると、次のようになりました。

C:\Users\Name\Desktop\git>git tag -s v1.6 -m "my signed 1.6 tag"
gpg: skipped "Name <name@gmail.com>": secret key not available
gpg: signing failed: secret key not available
error: gpg failed to sign the data
error: unable to sign the tag

編集:

秘密鍵をリストしようとすると、このエラーが発生します???

Name@NAME-PC ~
$ gpg --list-secret-keys
gpg: keyblock resource `c:/Users/Name/.gnupg\secring.gpg': file open error
gpg: keyblock resource `c:/Users/Name/.gnupg\pubring.gpg': file open error
gpg: fatal: c:/Users/Name/.gnupg: directory does not exist!
secmem usage: 0/0 bytes in 0/0 blocks of pool 0/32768
4

1 に答える 1

9

gpg4winのような gpg GUI を使用gnupg環境 (秘密鍵) を初期化することができます。

秘密鍵の作成

このブログ投稿では、次の警告が追加されていることに注意してください。

Gpg4win をインストールしました。これにより、キーと GPG コマンド ライン インターフェイスを管理するための優れた GUI がインストールされます。
GUI (GNU Privacy Assistant – Key Manager) を使用してキーを作成しようと何度も試みたので、このプロセスを知らなかったことが明らかになりました。その GUI は有効なキーを作成しているように見えますが、関連するキー パーツ ファイルを保存する場所は、GPG コマンド ラインがそれらを見つけることを期待する場所ではありません

(注: おそらく onC:\Users\Name\AppData\Roaming\gnupgで、ディレクトリの名前gnupgは ではなく.gnupg)

代わりに、必ずコマンド ライン クライアントを使用してください。皮切りに:

gpg --gen-key

キーの作成に失敗した場合は、手動でディレクトリを作成する必要がある場合がありますが、c:users<USER>.gnupgGPG は明らかにそれ自体では行いません

cd C:\Users\Name 
mkdir .gnupg
xcopy C:\Users\Name\AppData\Roaming\gnupg .gnupg

途中で見たエラーは

gpg: no writable public keyring found

と:

signing failed: secret key not available

注: gnupg を配置してもエラー メッセージが表示される場合は、タグに署名するときに使用する(gnupg) を追加してkey-idください。

git tag -u 'key-id' -s -m "some comment" some-tag 

コメントでroguibが指摘したように、リモート側でそのタグを表示したい場合は、次のものが必要になります。

  • git push --tags
  • または、Git 2.4.1 以降でgit config --global push.followTags trueは、単純なgit pushもので十分です。
  • そして、まだ Git 2.4.x では、 を追加git push --atomicして、すべてが実際にプッシュされている (または何もプッシュされていない) ことを確認できます。
于 2013-06-01T21:16:12.133 に答える