環境例
項目 | 値 |
---|---|
ローカルリポジトリのパス | 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
GitHubにsshで接続できるようにする。
・ローカル環境で「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」をクリック
・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
$ 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