LoginSignup
104
166

More than 3 years have passed since last update.

【GitHub】GitHub入門

Last updated at Posted at 2020-10-19

はじめに

(参考①) 【超入門】初心者のためのGitとGitHubの使い方
↑本記事の執筆にあたって参考とした記事1
(参考②) サル先生のGit入門
↑本記事の執筆にあたって参考とした記事2
(参考③) よく使う基本Gitコマンド集【厳選19選】
↑本記事の執筆にあたって参考とした記事3
(参考④) こっそり始めるGit/GitHub超入門
↑本記事の執筆にあたって参考とした記事集
(参考⑤) Git - Book
↑Gitを隅々まで理解したい方へ
(参考⑥) Markdown記法 チートシート
↑Qiitaでの記事投稿を検討している方へ

本記事では、ブランチに関する説明は省略しています。
主に一人でプロジェクトを進める方向けの記事となっておりますので、複数人でファイルを編集する場合は参考④を参照してください。

目次

GitHubとは
GitHubの仕組み
「ターミナル」で使用するコマンド(初期設定)
「ターミナル」で使用するコマンド(ワークツリー)
「ターミナル」で使用するコマンド(ワークツリー→インデックス)
「ターミナル」で使用するコマンド(インデックス→ローカル)
「ターミナル」で使用するコマンド(ローカル→リモート)
「ターミナル」で使用するコマンド(リモート→ローカル)

GitHub入門

GitHubとは

Git(バージョン管理を行うためのシステム)のHubと書いてGitHub(ギットハブ)と読みます。
その名の通り、Gitで人同士を繋ぐためのWebサービスです。自身の書いたソースコードを世界中に公開することができます。
バージョン管理の必要性については、参考①を参照してください。

多くの記事で「駆け出しエンジニアはGitHubを使え」と推奨されていますが、これには以下のような理由があります。

・開発現場で一般に用いられている
 → チーム開発では使えることが必須
・就職/転職活動の武器になる
 → 自分自身のポートフォリオとしてアピール材料にできる

なお、GitHubはCUI(Character User Interface; コマンドによる操作)で行いましょう。この理由は以下の通りです。

・OS(Windows/macOS(Linux))のコマンドを覚えられる
 → cd, mkdirといった基本的な操作コマンドを使えるようになる
 → 異なる開発環境でも普遍的に操作することができる
GUI(Graphical User Interface; マウスやボタンによる操作)よりも難しい
 → CUIで管理ファイルの流れを知っておくことで、GUIによるGitHub連携ツールの仕組みを理解できるようになる

GitHubの仕組み

GitHubで管理するファイルの流れは、以下のようになります。
スクリーンショット 2020-10-19 15.44.54.png
図における各要素の説明は、下記の通りです。

Repository(リポジトリ) ・・・ファイルやディレクトリ(フォルダ)の保管場所
Local Repository(ローカルリポジトリ) ・・・ローカル環境(=自身のPC)上に存在するリポジトリ。リモートリポジトリにアップロードする際は、必ずローカルリポジトリ上にファイルをコミットしておかなければならない。
Remote Repository(リモートリポジトリ) ・・・GitHubのサーバー上に存在するリポジトリ。

Index/Stage(インデックス/ステージ) ・・・変更後ファイルの一時的な保管場所

Working Tree(ワークツリー) ・・・実際に作業するディレクトリ(フォルダ)

ファイルの移動コマンド(ローカル→リモート)
add(登録) ・・・ワークツリー上のファイルを一時的にインデックスに保存する
commit(コミット) ・・・インデックス上のファイルをローカルリポジトリに保存する
push(プッシュ) ・・・ローカルリポジトリ上のファイルをリモートリポジトリにアップロードする

ファイルの移動コマンド(リモート→ローカル)
clone(クローン) ・・・リモートリポジトリにあってローカルリポジトリにないファイルをコピーする
pull(プル) ・・・リモートリポジトリ上にあるファイルの変更箇所をローカル上にダウンロード(fetch)し、その変更をワークツリー上のファイルに適用(merge)する

※横文字が並んで見づらい方は、上の図を参照していただければ結構です。

「ターミナル」で使用するコマンド(初期設定)

Macを使っている方は、「ターミナル」というプリインストールされたアプリを使用してGitHubでのバージョン管理を行います。
私が購入した「iMac (Retina 5K, 27-inch, 2020)」にはGitが標準でインストールされていましたが、お持ちのMacに標準搭載されていない場合はこちらを参照してインストールしてみてください。

よく用いるGitコマンドは、以下の通りです。
ターミナルで使うコマンドについて詳しく知りたい方は、「UNIXコマンド」と検索してみてください。

Gitのバージョン確認

まず、お使いのPCにGitがインストールされているのか確認しましょう。

% git --version
git version 2.24.3 (Apple Git-128)  //筆者の環境

ユーザ名・メールアドレスの設定

GitHubのアカウントをまだお持ちでない方は、こちらから登録しましょう。

% git config --global user.name "<ユーザ名>"
% git config --global user.email "<メールアドレス>"

Gitに関する設定の確認

アカウント設定を終えたところで、入力したコマンドが反映されているか確認しましょう。
user.nameuser.emailが、自身のGitHubアカウントと一致しているか確認できたら、ここで設定は完了です。
ここで使用するコマンドについての説明は以下の通りです。

-l (--list) ・・・ 一覧を表示
--global ・・・ 特定ユーザのconfig(設定情報)
--local ・・・ 特定リポジトリのconfig(デフォルト)

% git config -l   // --localの情報を表示
% git config --global -l  // --globalの情報を表示

ディレクトリ(フォルダ)の作成

ディレクトリはFinderから作成することができますが、ターミナルからも作成できます。
また、任意の場所にディレクトリを作成したい場合は、cdコマンドを使用してディレクトリを作成したい場所まで移動してからフォルダを作成します。(Finderでディレクトリを作成するときも自然とこの工程を踏んでいますよね?)
以下のコマンドを入力し、任意の場所に作業用ディレクトリを作成しましょう。
ここで使用するコマンドについての説明は以下の通りです。

pwd (present working directory) ・・・ 現在のディレクトリを表示
cd (change directory) ・・・ 現在のディレクトリから移動
mkdir (make directory) ・・・ ディレクトリの作成

% pwd   // 現在の場所を表示
% cd <移動するディレクトリのパス>  // 現在の場所から移動(絶対パス/相対パスどちらでも可)
% mkdir <作成するディレクトリ名>  // ディレクトリの確認

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

すでにアカウントの設定は終えていますが、Gitを使う前にローカルリポジトリを作成する必要があります。
ここで使用するコマンドについての説明は以下の通りです。

init (initialize) ・・・ ローカルリポジトリ(.gitディレクトリ)の作成

% git init   // ローカルリポジトリ(.gitディレクトリ)の作成

ディレクトリ内のファイルの確認

.gitファイルが作成されたかどうかを確認してみましょう。
任意のディレクトリに存在するファイル(.gitなどの隠しファイル含む)を確認するコマンドは以下の通りです。
ここで使用するコマンドについての説明は以下の通りです。

-a (--all) ・・・ 隠しファイル含む全てのファイル

% ls -a

リモートリポジトリの登録

GitHubでリポジトリを作成したら、その情報(リモートリポジトリのURL)をPCに登録する必要があります。
以下コマンドを実行して、PCにリモートリポジトリの情報を登録しましょう。
なお、このコマンドによってリモートリポジトリのURLがoriginとして登録されるため、ローカルからリモートにpushするときにURLを入力しなくて済むようになります。

% git remote add origin <リモートリポジトリのURL>

登録済リモートリポジトリの確認

リモートリポジトリを登録したら、正常に登録されていることを以下のコマンドで確認してみましょう。
ここで使用するコマンドについての説明は以下の通りです。

-v (verbose) ・・・ リモートリポジトリURLの表示

% git remote -v

「ターミナル」で使用するコマンド(ワークツリー)

空ファイルの作成

試運転としてpushまでの流れを掴みたい方は、以下コマンドを使用してテストファイルを作成しましょう。(実際に作成したファイルで流れを掴みたい方は、自身のファイルを作成すればOKです)

% touch test.txt  // test.txtファイルの作成

ファイルの内容を表示

ファイルの中身を閲覧したい方は、以下のコマンドを実行しましょう。
ここで使用するコマンドについての説明は以下の通りです。

cat (catenate) ・・・ ファイルの連結・内容の表示

% cat <ファイル名>

「ターミナル」で使用するコマンド(ワークツリー→インデックス)

インデックスへのステージング

ファイルを作成・編集した際は、コミットする前にインデックスに一時保存しておきましょう。
インデックスを利用することで、コミットするファイルをコミット前に確認したり、ファイルの変更点を後から見る(追跡する)ことができます。

% git add <ファイル名1> <ファイル名2> <ファイル名3> ...  // ファイル名を指定して登録
% git add .  // 全てのファイルを登録

インデックスへの登録の確認

addしたファイルが追跡されていることを確認したいときは、以下のコマンドを実行することで確認することができます。
statusの一覧は以下の通りです。

  1. 追跡済(tracked) ・・・ 既存ファイルやステージング済の新規ファイルなど
     1-1. 未変更(unmodified) ・・・ 前回のコミットから変更が行われていない状態
     1-2. 変更済(modified) ・・・ 前回のコミットから変更が行われた状態
     1-3. ステージング済(staged) ・・・ 変更後ファイルのコミットの準備が行われた状態
  2. 未追跡(untracked) ・・・ 新規作成されたファイル
% git status

「ターミナル」で使用するコマンド(インデックス→ローカル)

ローカルリポジトリへのコミット

インデックスに登録したファイルをローカルリポジトリにコミットします。

% git commit -m "<コミットメッセージ>"  // 初回のコミットは"first commit"等がおすすめ

コミット履歴の確認

正常にコミットが行われたかどうかを、コミットの履歴から確認してみましょう。
ここで使用するコマンドについての説明は以下の通りです。

-p (--patch) ・・・ 差分の内容を表示

% git log   // コミットした「ユーザの情報」「時間」「コミットメッセージ」の確認
% git log -p  // 前回のコミットと比較した変更点を表示

「ターミナル」で使用するコマンド(ローカル→リモート)

ローカルリポジトリからリモートリポジトリへの送信

% git push <送信先リポジトリ> <送信元ブランチ>:<送信先ブランチ>
% git push origin master  // originに対してmasterブランチをpush

「ターミナル」で使用するコマンド(リモート→ローカル)

リモートリポジトリからローカルリポジトリへの複製

リモートリポジトリにある「他人が作成・編集した」リポジトリをローカルリポジトリにコピーします。
一度コピーすれば、作業する前に差分だけリモートリポジトリから引っ張ってくればよいため、このコマンドを実行するのは初回だけで構いません。

% cd <リモートリポジトリを複製したいディレクトリのパス>
% git clone <複製したいリモートリポジトリのURL>

リモートリポジトリからローカルリポジトリへのプル

リモートリポジトリにある「他人が作成・編集した」ブランチの差分をローカルリポジトリに反映します。
一人でプロジェクトを進めている場合は、基本的にローカルリポジトリが最新の状態であるため、プルする必要はありません。

% cd <リモートリポジトリから差分を取りたいファイルが含まれるディレクトリのパス>
% git pull <送信元リポジトリ> <送信先ブランチ>
% git pull origin master  // masterブランチに対してoriginからpull



Gitでのファイル操作に関するコマンドは以上となります。

104
166
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
104
166