GitとGithubの基本的な使い方について入門者向けにまとめました。
【はじめに】Gitとは
git(ギット)とは、プログラム開発を管理できる便利なシステムです。
製作中のソースコードの変更履歴やバージョンを効率的に管理・記録できます。
様々なオープンソースのプログラム開発で利用されています。
【基礎】Git/Githubの基本用語
Gitの基本用語として次のようなものがあります。
用語 | 説明 |
---|---|
コミット(commit) | データを修正し、その結果をローカルリポジトリに適用。 |
プッシュ(push) | ローカルリポジトリのデータを修正し、その結果をリモートリポジトリに適用。 |
プル(pull) | リモートリポジトリのデータを修正し、その結果をローカルリポジトリに適用。 |
ブランチ(branch) | 修正作業の流れを主流から枝状に分岐させて管理。(ブランチにおける修正は他のブランチの影響を受けない。そのため、同じリポジトリで同時に複数の開発が可能) |
クローン(clone) | リモートリポジトリをコピーし、新たなリモートリポジトリを作成。 |
チェックアウト(checkout) | 他のブランチへ移動し、作業ディレクトリを任意のコミット状態にすること。 |
マージ(merge) | 異なるブランチの修正結果を適用。(マージ先とマージ元の両方に変更履歴が有る) |
Githubでは、主に次のような用語が使われています。
用語 | 意味 |
---|---|
Gist | 小規模なプログラムのコードやメモを共有できる機能。 |
Pages | Webページを作れるホスティングサービス。 |
pull request | プログラムのコードをレビューする機能。他の人に修正作業の結果を見てもらいたい場などに使う。 |
フォーク(fork) | 他のリモートリポジトリをコピーして、自分のリモートリポジトリで編集できる機能。 |
イシュー(issue) | プログラムの課題を管理する機能。「コード」「プルリクエスト」「修正履歴」と課題を関連付けて管理可能。 |
オーガナイゼーション(organization) | 組織や団体、プロジェクトなどのグループのこと。 |
【環境構築】Git(ポータブル版)のインストール
インストール手順は以下のとおりです。
①以下のリンク先を開きます。
https://github.com/git-for-windows/git/releases
②PortableGit-2.12.1-〇〇-bit.7z.exeをダウンドードします。
※〇〇はお使いのOSのbitに応じて変えます。
③ダウンロードしたexeファイルをダブルクリックします。
④「OK」ボタンを押すとGitのポータブル版(PortableGit)が展開されます。
⑤ポータブル版なので、「PortableGit」を任意の場所に移動しても使用できます。
【基本操作】バージョンを確認・表示
①「Git Bash」を起動します。
※Windowsの場合、[git-bash.exe]をダブルクリック
②下記のコマンドを実行します。
$ git --version
③Gitのバージョンが表示されます。
git version 2.18.0.windows.1
【config設定】ユーザー名、メールアドレス
①[git-bash.exe]をダブルクリックし、「Git Bash」を起動します。
②下記のコマンドを実行します。
$ git config --global user.name "nishizumi" $ git config --global user.email nishizumi@example.com
※上記はユーザー名「nishizumi」、メールアドレス「nishizumi@example.com」で設定した例
③これで設定完了です。
設定内容は以下のコマンドで確認できます。
※Enterを押していくと確認できます
$ git config --list
, . . user.name=nishizumi user.email=nishizumi@example.com
【SSH】秘密鍵、公開鍵の作成
①Git Bashを起動します。
②下記のコマンドを実行します。
$ ssh-keygen -t rsa -b 4096 -C "nishizimi@example.com"
※「nishizimi@example.com」は設定したメールアドレス
オプション | ssh-keygenコマンドの説明 |
---|---|
-t | 鍵のタイプ |
-b | 鍵の長さ(GitHubの推奨は4,096ビット。長いほど安全性が高い) |
C | コメント(何の鍵かなどを残せる) |
③作成される鍵の「ファイル名」を指定します。
Enter file in which to save the key (/c/Users/hogehoge/.ssh/.ssh/id_rsa):id_rsa_github_nishi
※上記はファイル名を「id_rsa_github_nishi」とする場合
※何も指定しないとデフォルトのファイル名「id_rsa」で出力されます。
④パスワードを入力して設定します。
※SSH接続時などに利用
Enter passphrase (empty for no passphrase): <任意のパスフレーズ> Enter same passphrase again: <パスフレーズ>
⑤これで、秘密鍵(id_rsa_github_nishi)と公開鍵(id_rsa_github_nishi.pub)がペアで作成されます。
– | – |
---|---|
作成場所 | git-bash.exeと同じディレクトリ |
秘密鍵 | 大切に内部で保管します。(外部には非公開) |
公開鍵 | SSH接続したいサービスに登録(GitHubなど) |
⑥「git\etc\ssh\ssh_config」ファイルをエディタで開いて下記の内容を追記します。
Host github_nishi HostName github.com User git IdentityFile id_rsa_github_nishi
※id_rsa_github_nishizumiは秘密鍵のファイルパスです。
⑦この設定を行うことで、GithubとSSH接続する場合に「ssh github_nishi」と入力するだけで済みます
※「ホスト名」「ユーザー名」「秘密鍵」の入力作業を省略可能。
【Github】リポジトリの作成
①下記URLからGithubにログインします。
https://github.com/
②[Repository]をクリックします。
③[New]をクリックします。
④「Repository name」欄に作成したいリポジトリ名を入力します。
⑤「Initialize this repository with a README」にチェックを入れて「Create repository」をクリックします。
これでリポジトリは完成です。
【GitHub】公開鍵の登録(Windows編)
①作成した公開鍵ファイル(id_rsa_github_nishizumi.pub)を適当なエディタで開きます。
②公開鍵ファイルの中身をコピーします。
※改行や余分な文字列が入らないように注意
③GitHubのページの右上にあるアイコンをクリックし、アカウントメニューの中にある「Settings」を開きます。
④左側のメニューから「SSH and GPG keys」タブをクリックします。
⑤「New SSH key」をクリックします。
⑥「Title」には任意のタイトルを入れます。
※どの「PC」「サーバー」にある秘密鍵のペアである公開鍵かわかるようなタイトルを付けると便利
⑦「Key」にコピーした公開鍵ファイルの中身を貼り付けて、「Add SSH key」をクリックします。
⑧これで公開鍵の登録が完了です。
先程の登録作業が成功しているか検証するため、GitHubへSSH接続してみます。
次のコマンドを実行します。
$ ssh github_nishizumi
パスワードを求められたら、鍵の生成時に設定したパスフレーズを入力します。
以下のようなメッセージが表示されたら成功です。
Hi <Githubのアカウント名>! You've successfully authenticated, but GitHub does not provide shell access. Connection to github.com closed.
【clone】Githubリポジトリをローカルにクローン
①Gitの作業ディレクトリを作成します。
$ mkdir git $ cd git
②GitHubリポジトリのページ右にある「Clone or download」→「Use SSH」をクリックします。
③以下の文字列をコピーします。
git@github.com:<ユーザー名>/<Githubリポジトリ名>.git
④Git Bashで先程コピーした文字列を使って以下のコマンドを実行します。
$ git clone git@github.com:<ユーザー名>/<Githubリポジトリ名>.git
⑤以下のような表示が出てきて、Githubリポジトリと同じデータがローカルの作業ディレクトリ内にコピーされていれば成功です。
Cloning into '<リポジトリ名>'... remote: Counting objects: 3, done. remote: Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 Receiving objects: 100% (3/3), done.
【push】Githubリポジトリにアップロード
① 認証エージェント(ssh-agent) に、秘密鍵を追加します。
eval `ssh-agent` ssh-add [秘密鍵ファイルのパス]
② ターミナルでアップロードしたいファイルの場所へ移動します。
※ ドラッグ&ドロップ可能
$ cd [アップロードするファイルのパス]
③ ファイル内をgitで管理可能にします。
$ git init
③ アップロードしたいファイルを追加します。
$ git add 「アップロードしたいファイルのパス」
④ 変更の記録(コメント)をつけてcommitします。
$ git commit -m [任意のコメント]
⑤ アップロード先を指定します。
$ git remote add origin [アップロード先]
⑥ pushしてアップロードします。
$ git push -u origin master
⑦ 「Everything up-to-date」と表示されても、githubのcommitを確認すると、変更されていないことがあります。
その場合は、以下のコマンドを実行します。
$ git push ssh://git@github.com/◯◯◯.git master:master
コメント