nKB

nKB

シンプルにいこうよ

GistをGitHubで管理する(Windows)

環境例

項目
ローカルリポジトリのパス C:\GitHub\gist
ローカルリポジトリディレクトリ名 test.vbs(任意)
鍵のパス C:\GitHub\.ssh
公開鍵 C:\GitHub\.ssh\rsa_github.pub
秘密鍵 C:\GitHub\.ssh\rsa_github
SSH URL git@gist.github.com:xxxxxx.git
Gist コード名 test.vbs


手順

GitHubでGist用のリポジトリを作成する。

Menu 「New Repository」

リポジトリ
<user name>/gist


GitHubsshで接続できるようにする。

・ローカル環境で「Git Bash」を起動する。

ssh-agent を起動し、SSHの公開鍵と秘密鍵を作成

$ cd C:\GitHub\.ssh
$ ssh-agent bash
$ ssh-keygen -t rsa -b 4096 -f rsa_github


実行結果

Generating public/private rsa key pair.
Enter passphrase (empty for no passphrase): <passphraseを入力>
Enter same passphrase again: <passphraseを入力>
Your identification has been saved in rsa_github.
Your public key has been saved in rsa_github.pub.
The key fingerprint is:
SHA256:xxx
The key's randomart image is:
+---[RSA 4096]----+
|  xxx            |
+----[SHA256]-----+


秘密鍵rsa_github)と公開鍵(rsa_github.pub)が作成される。

$ ls
rsa_github  rsa_github.pub

GitHubに公開鍵を登録する。

クリップボードに公開鍵をコピーする。

$ clip < rsa_github.pub

GitHubを開き、右上のメニューから「Settings」を選択する。

・「SSH and GPG keys」をクリック

SSH keys の「New SSH key」をクリック

・Titleは任意、keyにクリップボードに入っている公開鍵を貼り付け、「Add SSH key」をクリック

SSH key が登録される。

秘密鍵の登録

$ ssh-add rsa_github

実行結果

Enter passphrase for rsa_github: <passphraseを入力>
Identity added: rsa_github (xxx@xxx)


NGが出た場合

$ ssh-add rsa_github
Could not open a connection to your authentication agent.

「eval "$(ssh-agent)"」を実行してからもう一度実行する


秘密鍵の登録状況の確認

$ ssh-add -l

GitHubsshで接続できることを確認

$ ssh -T git@github.com


実行結果
OKの場合

Hi <username>! You've successfully authenticated, but GitHub does not provide shell access.

NGの場合

git@github.com: Permission denied (publickey).


Host key verification failed.

上記エラーが発生した場合は「Are you sure you want to continue connecting (yes/no/[fingerprint])? 」の
質問に「yes」と回答すればOK。

ローカルリポジトリにリモートリポジトリを登録

$ git init
$ git remote add origin https://github.com/<user name>/gist.git


Gistコード登録

ローカルリポジトリにGistコードをサブモジュールとして登録

・GistでSSH URLを確認する
Gistに登録したコードのページに移動
「embed」アイコンをクリック → 「Clone via SSH」を選択する。
「embed」アイコンの横に表示される「git@gist.github.com:xxx.git」がSSH URLになる。
例 表示されたURLが「git@gist.github.com:xxxxxx.git」とする。

・ローカルリポジトリにクローン作製
コマンド構文:git clone <url> <directory name>
 ※ディレクトリ名はコードのタイトルにしている(任意)。
 ※なにも指定しないと16進数のIDで作成される。

$ git clone git@gist.github.com:xxxxxx.git test.vbs


・gitサブモジュールを登録
コマンド構文:git submodule add <url> <directory name>

$ git submodule add git@gist.github.com:xxxxxx.git test.vbs

おまけ
サブモジュールは「git mv」で移動できる

EOF