🏹
Gitコマンド入門::Gitカスタマイズ機能(config,SSH keys3)第八十回
みなさんこんにちは! 前回は、自分で2つアカウントを用意して、複数人数での環境構築のシミレートを行いましたけど、いかがでしょうか? 今回は前回に続いて、git pull
してきた相手側のリポジトリーを、自分のGitHubのリモートに、git push
してみますね。
今回も、こちらのドキュメントの続きです。
7.4 Git のさまざまなツール - 作業内容への署名
前回の記事はこちらから!
git本家のドキュメントメニューはこちら!
ざっくり手順はこんな感じですね。
- | 1st アカウント側 | 2nd アカウント側 | 補足 |
---|---|---|---|
1 | - | PGP証明書作成 | gpg --gen-key |
2 | - | git commit -S | 署名付きコミット |
3 | - | git push | Githubにプッシュ |
4 | - | PGP証明書Export | gpg -o <FILE> -a --export <Mail> |
5 | git clone | - | git clone <URL> |
6 | PGP証明書import | - | gpg --import |
7 | PGP証明書承認 | - | gpg --edit-key 5番を選択 |
8 | git push | - | 1st 側のGithubにプッシュ |
8番目の処理を行います!
$ git remote -v
origin https://github.com/shiozumi-makoto/20210412.git (fetch)
origin https://github.com/shiozumi-makoto/20210412.git (push)
現状では、clone した直後なので、リモートリポジトリ、origin も、2ndアカウントのままですから、まずは、ここを1st側のリポジトリに変更します!
1st側のアカウントで、GitHubにログインし、2nd側と同じ名称の、20210412 リポジトリを作成して置きます。
git remote add origin <URL>
コマンドで設定!
$ git remote add origin https://github.com/shiozumi-esmile/20210412.git
fatal: remote origin already exists.
// 当然、登録済なので、エラーとなりますね。(^▽^;)
$ git remote rename origin origin_2nd
// origin を、リネームしてから!
$ git remote add origin https://github.com/shiozumi-esmile/20210412.git
// 再度、実行!
$ git remote -v
origin https://github.com/shiozumi-esmile/20210412.git (fetch)
origin https://github.com/shiozumi-esmile/20210412.git (push)
origin_2nd https://github.com/shiozumi-makoto/20210412.git (fetch)
origin_2nd https://github.com/shiozumi-makoto/20210412.git (push)
// 設定は、このようになっています。
// origin は、origin_2nd になり、
// あたらしい、origin は、1stアカウントのリポジトリとなりました。
git push -u origin sub
ローカルmainブランチから、チェックアウトして、subをプッシュします!
$ git checkout -b sub
Switched to a new branch 'sub'
// ローカルsubブランチ作成
$ git branch -avv
main 1b81f9b [origin_2nd/main] 3rd
* sub 1b81f9b 3rd
remotes/origin_2nd/HEAD -> origin_2nd/main
remotes/origin_2nd/main 1b81f9b 3rd
$ git push -u origin sub
// ローカルsubブランチを、push
Username for 'https://github.com': shiozumi-esmile
Password for 'https://shiozumi-esmile@github.com':
Enumerating objects: 9, done.
Counting objects: 100% (9/9), done.
Delta compression using up to 12 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (9/9), 1.86 KiB | 1.86 MiB/s, done.
Total 9 (delta 0), reused 0 (delta 0)
To https://github.com/shiozumi-esmile/20210412.git
* [new branch] sub -> sub
Branch 'sub' set up to track remote branch 'sub' from 'origin'.
$ git branch -avv
main 1b81f9b [origin_2nd/main] 3rd
* sub 1b81f9b [origin/sub] 3rd
remotes/origin/sub 1b81f9b 3rd
remotes/origin_2nd/HEAD -> origin_2nd/main
remotes/origin_2nd/main 1b81f9b 3rd
1st側のGitHubにログインして確認!
git log --show-signature --oneline
$ git log --show-signature --oneline
1b81f9b (HEAD -> sub, origin_2nd/main, origin_2nd/HEAD, origin/sub, main)
gpg: 2021年04月12日 07時53分37秒 JSTに施された署名
gpg: RSA鍵24A0A56EC0BC3E95を使用
gpg: "Chi Shiozumi <shiozumi@e-smile.ne.jp>"からの正しい署名
3rd
33203ea gpg: 2021年04月12日 07時50分05秒 JSTに施された署名
gpg: RSA鍵24A0A56EC0BC3E95を使用
gpg: "Chi Shiozumi <shiozumi@e-smile.ne.jp>"からの正しい署名
2nd
9564a2c gpg: 2021年04月12日 07時21分12秒 JSTに施された署名
gpg: RSA鍵24A0A56EC0BC3E95を使用
gpg: "Chi Shiozumi <shiozumi@e-smile.ne.jp>"からの正しい署名
1st
GitHub側と、ローカル側での、1b81f9b, 33203ea, 9564a2c, 3つのハッシュ値を確認できましたね。また、意外だったのが、Verified になっていましたね。おそらくこれは、GitHub側で、2つともアカウントを管理しているからなのでしょう。
Verified ステータスも確認してみます。
私の予測とは、異なっていましたね。
当初想定していたのは、2nd側のPGP公開鍵を、1st側のGitHubに登録しないと、Unverified になると思っていたところ、どうやら、GitHub側で、2ndアカウントから紐づけて、GPGファイルを読み込んでくれそうです。
実際に、2ndアカウント側で、PGP公開鍵を削除してみました。すると予想通り、Unverified になりましたね。
まとめ
さあ、いかがでしたか? 最後PGPキーのアカウントからの紐づけは予想外でしたけど、サイトの機能としては、まあ、当たり前ですよね~(^▽^;) ちなみに、GitHubのアカウントを持っていない場合は、PGPの公開鍵を、GitHub側に登録しないと、Unverified と表示されます。
それでは、今回はここまで、お疲れ様でした!
Discussion