GitHubにリポジトリを作ってみる

メモ的にエントリ。gitを使う練習にしよう。

GitHubアカウント作成

  1. https://github.com へアクセス
    • 以下日本語表記で書く
  2. 真ん中の新規登録をクリック
  3. 無料アカウントの作成をクリック
  4. ユーザ名などをいれて作成

GitHubBootcamp をとりあえずやる

丁寧なチュートリアルがあるのでまずやってみる。ローカル環境はMac。

Set Up Git

まずは SSH キーの作成(作成されてなかったので)

$ cd ~/.ssh
$ ssh-keygen -t rsa -C "my@mail.com"

次はGitHub側の設定。

  1. GitHubの [アカウント設定] - [SSH公開鍵] へ
  2. 別の公開鍵を追加をクリック
  3. 先ほど作成した公開鍵(id_rsa.pub)の中身をキーに貼りつけキーの追加をクリック
  4. GitHubへsshで接続確認
    • known_hostsに追加されるのが目的と思われる。実際には接続はクローズされる。

$ ssh git@github.com

次はAPIトークンの登録。

  1. GitHubの [アカウント設定] - [アカウント管理] へ
  2. APIトークンを確認
  3. 以下でローカルのgitにAPIトークンを設定。ついでにgithubユーザ?も設定

$ git config --global github.user daicham
$ git config --global github.token

これでOK。

Create A Repo

ようやく GitHub にリポジトリを作る。

  1. https://github.com へアクセス
  2. あなたのリポジトリの新しいリポジトリをクリック
  3. プロジェクト名と説明を入力してリポジトリを作るをクリック

これでGitHub上にリポジトリが作成される。カンタン。

次は作成したリポジトリにファイルを登録する。
まずは、ローカルにgitリポジトリを作り、ファイルを作成する。

$ mkdir -p ~/Repositories/test
$ cd ~/Repositories/test
$ git init
$ echo "first github repository" > README
$ git add README
$ git commit -m "first commit"

で、作成したファイルをGitHubへpushする。

$ git remote add origin git@github.com:daicham/test.git
$ git push origin master

1行目は、ローカルgitリポジトリの親にgithubのtest.gitリポジトリを設定
2行目は、ローカルgitリポジトリから親リポジトリへpush

Fork A Repo

Bootcampのとおりに、試しにSpoon-Knifeをフォークする

  1. https://github.com/octocat/Spoon-Knife へアクセス。
  2. 画面右のフォークボタンをクリック。

以上、超カンタン。GitHub以外からのフォークはどうするんだろ?まぁ、いまは忘れることにする。
で、ローカルでさわるために、クローンを作成。

$ cd ~/Repositories
$ git clone git@github.com:daicham/Spoon-Knife.git

クローンでけた。

この下は理解がかなりあやしい、がとりあえずすすめる。

次は、リモートの設定とな?
通常は親(クローン元)は origin という名前だが、今回は自分のリポジトリにフォークしたSpoon-Knife。これってオリジナルじゃないよねってことで、upstream って名前でオリジナル(フォーク元)にアクセスできるようにしよう。
ってことだと思われる。以下のコマンドがそれ。

$ git remote add upstream git://github.com/octocat/Spoon-Knife.git

で、その upstream からローカルにない変更を持ってくるのが以下。(たぶん)

$ git fetch upstream

fetch はワーキングファイルは変更しない模様。
変更を反映するには、以下のようにマージする。

$ git merge upstream/master

で、変更した内容を自分のフォークしたリポジトリに反映するには、

$ git push origin master

ということらしい。

あと、PullRequest はフォーク元のオーナに「フォークしたんだけど、俺の変更とりこまない?」とリクエストすることと思われる。

Be Social

ソーシャル機能もある模様。また今度。

意外といろいろあったな。まぁとりあえず練習でいろいろ使ってみよう。