S-JIS[2011-10-01/2022-03-09] 変更履歴

GitHubの使い方

GitのWebサービスであるGitHub(ギットハブ)のメモ。


設定の概要

GitHubにはsshを使って接続するので、クライアント側(自分のPC)でsshの設定(鍵の生成)をしておく必要がある。
そして、公開鍵をGitHubに登録する。

GitHubに接続する為に、Git(gitコマンド)を自分のPCにインストールしておく必要がある。


SSHの設定

GitHubへ接続する為のSSHの設定。[2012-03-04/2022-03-09]

  1. SSHの鍵を生成する。
    1. Cygwin(のbash)やGit Bashを起動する。
    2. ssh-keygenコマンドを使ってキーを生成する。
      $ ssh-keygen -t rsa -C "メールアドレス"
      $ cd ~/.ssh/
      $ chmod 600 id_rsa*
      途中でパスフレーズ(パスワード)を入力する。パスフレーズを何も指定しない事も可能。
      (パスフレーズを指定すると、GitHubへアクセスする度にパスフレーズを入力することになる)
      Eclipse3.7のGitプラグイン(EGit)では、AESを使ったパスフレーズに対応していない(バグっている)らしく、この方法で作ったパスフレーズありの鍵は使えない)
  2. 生成された公開鍵をGitHubに登録する。
    1. $HOME/id_rsa.pubの中身をコピーする。(長い文字列なので、コンソールに表示すると途中で改行しているように見えるが、改行しないよう注意)
    2. GitHubにログインし、右上のアイコンをクリックし、ポップアップメニューからSettingsを選択する。(設定画面へ移動する)
    3. 左側のメニューの「SSH and GPG Keys」をクリックする。
    4. 「New SSH Key」ボタンを押す。
    5. 「Key」に、id_rsa.pubの中身を貼り付ける。「Title」は備忘となるよう、適当なものを入れておく。

鍵を削除したい場合は、鍵一覧の右側のDeleteボタン。
「New SSH Key」ボタンを押すことで、複数の鍵を追加することが出来る。(別の場所からアクセスしたい時などに使う)


.ssh/configの設定

$HOME/.ssh/に複数のid_rsaファイルがあると、git cloneを実行した際にpublickeyの権限が無いというエラーが出る。[2022-03-09]

$ git clone git@github.com:example/hoge.git
Cloneing into 'hoge'...
Permission denied (publickey).
fatal: Could not read from remote repository.

この場合、Gitの設定ファイルで、github.comにアクセスするときに使用するid_rsaファイルのパス(とGitHubのログインID)を指定してやればよい。

$HOME/.ssh/config:

Host github.com
  User hishidama
  IdentityFile ~/.ssh/id_rsa

※Hostの後ろに書かれた文字列(github.com)が、cloneする際のURL(@github.com)に一致していると、この設定が使われる。


新規リポジトリーの作成

Gitでは「リポジトリー≒プロジェクト」なので、新しいプロジェクト(ソース類一式)を作りたい場合は新規リポジトリーを作成する。

まずGitHub上でリポジトリーを作成し、自分のPC上でもリポジトリーを作成する。
そして「リモートリポジトリー」として、自分のリポジトリーにGitHubリポジトリーを登録する。


GitHubリポジトリーの作成

  1. GitHubにログインして、右上のメニューの「Dashboard」をクリック。
  2. 「Create A Repository」の絵をクリック。
  3. 「Click New Repository.」をクリック。
  4. プロジェクト名(例:sandbox)を入力する。説明やホームページURLは任意。

ローカルリポジトリーの作成

GitHub上でリポジトリーを作成するとチュートリアル(使い方)が表示されるので、それに沿って実行してみる。
Cygwinのgitコマンドを使って実行している)

「sandbox」というリポジトリーを作った場合の例
  コマンド 説明
初期設定
git config --global user.name "githubのユーザー名"
git config --global user.email githubに登録したメールアドレス
GitHubを初めて使う際に一度だけ実行しておけばよい。
(Gitではメールアドレスをユーザーの識別に使っているらしい)
新規作成
mkdir sandbox
ローカルリポジトリーの為のディレクトリーを作成する。
このディレクトリー名は、GitHubで作ったリポジトリー名と一致している必要は無い。
cd sandbox
git init
ローカルリポジトリーを作成する(初期化する)。
(直下に.gitというディレクトリーが作られる)
touch README
ファイルを作ってみる。(→READMEファイルの役割
git add README
git commit -m 'first commit'
ローカルリポジトリーへコミットする。
git remote add origin git@github.com:ユーザー名/sandbox.git
自分のリポジトリーにGitHubリポジトリーをリモートとして登録する。
その名称として「origin」を指定している。
好きな名前に出来るが、ベースとなるリポジトリーにはoriginという名前を付けるのが慣例らしい。
git push -u origin master
GitHub(リモートリポジトリー)へ反映させる。
(ssh鍵の生成時にパスフレーズ(パスワード)を設定していた場合は、ssh接続するのでパスフレーズを入力する必要がある)
修正
vi README
ファイルの中身を書き換える。
git add README
git commit -m 'message change'
修正をコミットする。
git push
修正をGitHub(リモートリポジトリー)へ反映させる。
ファイル名変更
git mv README README.txt
git commit -m 'rename'
git push
 

リポジトリー名の変更・削除

GitHub上のリポジトリー名を変えたり削除したりする方法。

  1. GitHub上の自分のページ「https://github.com/ユーザー名/」で、対象となるリポジトリーを選択する。
  2. 右上の「Admin」をクリックする。
  3. リポジトリー名の変更や削除を行う。

Git目次へ戻る / 技術メモへ戻る
メールの送信先:ひしだま