読者です 読者をやめる 読者になる 読者になる

望月いちろうのREADME.md

書き溜めておいた技術記事や旅行記のバックアップです。

GitHubで初めてOSSとしてソースコードを公開するときの手順

GitHub

f:id:mochizuki_p:20161019164452p:plain

GitHubのアカウントが作成済み、かつ基本的なGitの操作を理解している。という前提で説明します。

GitHubにプロジェクトを公開するには以下の手順を踏む必要がある。

  1. 作業用PCに公開・秘密鍵のペアを作成する
  2. GitHubに1.で作成した公開鍵を登録する
  3. GitHubでプロジェクトを作成する
  4. ローカルのレポジトリからGitHubにレポジトリにコミットする

1.SSH公開鍵を作成して設置する

ローカル環境でターミナルを開いてGitHub用の公開・秘密鍵のペアを作成します。

example@gmail.comの部分はあなたのGitHubアカウントの公開メールアドレスとなります。

$ ssh-keygen -t rsa -b 4096 -C "example@gmail.com"

次に保存先のパスを指定するように促されます

Generating public/private rsa key pair.

Enter file in which to save the key (/Users/mochizuki/.ssh/id_rsa): 

ここではgithub_rsaとして/Users/mochizuki/.sshに保存することにします。 注:mochizukiはあなたのPCの環境に合わせて変更してください。

 /Users/mochizuki/.ssh/github_rsa

次にこの鍵用のパスフレーズを登録するように促されます。パスフレーズとは秘密鍵にアクセスするために必要なパスワードのようなものです。

Enter passphrase (empty for no passphrase): 

2回同じパスフレーズを入力したら以下のような出力が表示されるはずです。そうしたら秘密・公開鍵のペアを作成されたことになります。

Your identification has been saved in /Users/mochizuki/.ssh/github_rsa.
Your public key has been saved in /Users/mochizuki/.ssh/github_rsa.pub.
The key fingerprint is:
d6:c8:d2:30:c1:aa:7e:27:4a:15:09:35:c8:1a:18:64 example@gmail.com
The key's randomart image is:
+--[ RSA 4096]----+
| .Eo. ..  ..      |
| ... ..   ..     |
|    + +  .+      |
|   . . o.+ +     |
|    .  +S . .    |
|     . ++        |
|      o...       |
|       +. + .    |
|        .o o     |
+-----------------+

以下のコマンドで確認してみましょう。

ls -al ~/.ssh

無事作成できたようです。

-rw-------   1 mochizuki  staff  3326 10 18 17:31 github_rsa
-rw-r--r--   1 mochizuki  staff   752 10 18 17:31 github_rsa.pub

そしてsshに利用する鍵リストに追加します。

$ ssh-add ~/.ssh/github_rsa 

2.Githubに1.で作成した公開鍵を登録する

クリップボードに先ほど作成した公開鍵**github_rsaをコピーします。

$ pbcopy < ~/.ssh/github_rsa.pub

次にGithubにログインしてpersonal settingをクリックします。画面左側の設定欄にあるSSH and GPG keysをクリックすると以下のような画面になります。 f:id:mochizuki_p:20161018195703p:plain そしてNew SSH Keyをクリック Titleには適当な名前(ほかと区別するための)と大きなテキストエリアには先ほどコピーした公開鍵をペーストします。 f:id:mochizuki_p:20161018200107p:plain 入力が終わったらAdd SSH keyをクリックして公開鍵の登録を完了します。

ローカルに戻ってコマンドラインで公開鍵認証が有効化されているかを確認しましょう。

$ ssh -T git@github.com

成功していればこのようなメッセージが届くはずです。

Hi mochizuki-ichiro! You've successfully authenticated, but GitHub does not provide shell access.

3.Githubでプロジェクトを作成する

セキュリティの観点からか分かりませんが、GitHubでプロジェクトを作成する際にコマンドラインで作業を完結させることはできません。最初にブラウザ上で最低限の設定を済ませる必要があります。

ヘッダーの右上にあるbioのよこにある+のボタンからcreate new repositoryをクリックします。 そして以下の画面が表示されるので必要な情報を入れていきます。 f:id:mochizuki_p:20161018201109p:plain 最低限必要な欄はレポジトリの名前です。そしてOSSですのでPublicを指定します。 ここでプロトコルSSHを選択します。 ここまででレポジトリを公開する準備が出来ました。 f:id:mochizuki_p:20161018201515p:plain

4.ローカルのレポジトリからGitHubにレポジトリにコミットする

次にローカルレポジトリに移動して

README.mdを作成する。

GitHubのレポジトリにはREADMEが必要です。まずこれを作成してローカルレポジトリに追加します。

$ echo "# node-jumanpp" >> README.md
$ git add README.md

Gitのユーザー名と公開アドレスを設定します。ユーザー名はGitHubのユーザー名と一致させるといいでしょう 公開アドレスはくれぐれもプライベートで使うアドレスを登録しないように、世界中に公開されるので

git config --global user.name "mochizuki-ichiro"
git config --global user.email example@gmail.com

そして公開したいファイルがローカルレポジトリに登録されていることを確認してからcommit

git commit -m "first commit"

そして2.で作成したGitHubの公開レポジトリのアドレスをリモートレポジトリとして登録します

$ git remote add origin git@github.com:mochizuki-ichiro/node-jumanpp.git

最後にマスターとしてプッシュを実行

git push -u origin master

ここでアクセスを拒否された場合はsshに公開鍵が登録されているかを確認

ssh-add -l

何も表示されていなかったら登録しておく

Counting objects: 5, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (4/4), done.
Writing objects: 100% (5/5), 1.63 KiB | 0 bytes/s, done.
Total 5 (delta 0), reused 0 (delta 0)
To git@github.com:mochizuki-ichiro/node-jumanpp.git
 * [new branch]      master -> master
Branch master set up to track remote branch master from origin.

公開レポジトリにファイルがアップされたことが確認できました。 f:id:mochizuki_p:20161018203616p:plain