前回の Git(ギット)の使い方 では Git を使用して、ローカルリポジトリを作成してバージョン管理を試してみました。

Github(ギットハブ)やBitbucket(ビットバケット)のようなサービスを使えば、複数人でファイルの作成や更新ができ、その内容を共有できるためチーム開発には必須のものとなっています。

今回は、GitHubを使用してリモートリポジトリを試してみましょう。

GitHubページ画像

GitHubとは

ローカルリポジトリは自分のパソコンでバージョンを管理するためのものですが、複数人で共同で作業する場合はリモートリポジトリを立ち上げる必要があります。

リモートリポジトリはネットワークに接続されたGitサーバーを使用しますが、このサーバーの役割を担ってくれるサービスがGitHubです。

GitHubでは、Gitのバージョン管理だけではなく、Wiki(ドキュメント)を作成できたり、Issue(課題)を作成してタスク管理を行うといったこともできます。

GitHubのアカウントを作成​

GitHubを使用するためには、アカウントの登録が必要です。

まだアカウントを作成していない方は、以下のリンクからアカウントを作成しましょう。(サインアップ

既にアカウントを作成している方はログインしてください。(サインイン

GitHub

リモートリポジトリを作成する

ログインができたら、新しくリポジトリを作成してみましょう。

ここでは、以下の公式ドキュメントを参考にしてリポジトリを作成してください。

新しいリポジトリの作成 – GitHub Docs

リモートリポジトリをクローンする​

リモートリポジトリをクローンすることで、ローカルリポジトリと同期させます。

クローンしたリポジトリ(フォルダ/ディレクトリ)内のファイルはGitHubでバージョン管理を行えるようになります。

以下はこのクローンを行うための方法です。

  • コマンド で行う方法
  • Zipファイルをダウンロードする方法
  • GitHub Desktop (デスクトップアプリ)を使用する方法

リポジトリをクローンする – GitHub Docs

ローカルリポジトリにリモートを追加する​

既にGitで管理させているローカルリポジトリにリモートリポジトリの場所を記憶させてリモートと同期させます。

ローカルリポジトリのリモートを確認する​

ローカルのリポジトリが既にリモートと同期されているかどうかを確認するためにはローカルリポジトリのディレクトリで以下のコマンドを実行します。


$ git remote -v
# 既存のリモートの確認
> origin  https://github.com/user/repo.git (fetch)
> origin  https://github.com/user/repo.git (push)
                

この結果は、リモート名が origin で、リモートURLが https://github.com/user/repo.git であるリモートリポジトリと既に同期されているということを表します。 ※デフォルトでは origin が使用されます。

まだリモートがない場合は、以下のドキュメントを参考にリモートを追加してください。

リモートの追加 – GitHub Docs

GitHub Desktop を使用してリモートを追加する場合は以下を参考にしてください。

Adding an existing project to GitHub using GitHub Desktop – GitHub Docs

変更をリモートリポジトリに同期(プッシュ)する​

ローカルリポジトリで変更したファイル(コミット済みのファイル)をリモートリポジトリに同期させることをプッシュするといいます。

ここでは git push というコマンドを使用しますが、パラメータに リモート名ブランチ名を指定する必要があります。

デフォルトの状態であれば、リモート名は origin でブランチ名は master とすることでプッシュできます。

コミットをリモートリポジトリにプッシュする – GitHub Docs


$ git push  <リモート名> <ブランチ名> 
                

プルリクエストについて​

前回のGitの使い方でブランチを作成してマージを行うまでを試してみました。

このブランチでコミットしたファイルを masterブランチ にマージするように依頼することをプルリクエストと言います。

プルリクエストを行う場合は、「タイトル」や「変更点についてなぜ変更を行ったか」などを入力して送信します。

また、変更箇所をレビューしてもらうように依頼することも可能です。

ブランチの作成には「書き込み権限」が必要になります。この権限がない場合はブランチを作成することができないので、後に記述する フォーク を作成してください。

プルリクエストの作成方法 – GitHub Docs

フォークについて​

フォークを使用してリモートリポジトリのコピーを作成し、オリジナルのリポジトリに影響を与えずに編集を行うことができます。

また、フォークの特徴として、元となるリポジトリに変更があった場合は自分のリポジトリに反映することができたり、変更を行った箇所をプルリクエストすることでコードの改善や修正に貢献することができるようになります。

OSS(オープンソースソフトウェア)などへの貢献が前提の機能です。

フォークについて – GitHub Docs

フォークとブランチとクローンの複製の違いについて

ブランチ・・・リポジトリ内でバージョン管理を複製します。

フォーク・・・リポジトリそのものを自分のアカウントのリモートリポジトリに複製します。

クローン・・・自分のローカルリポジトリにリポジトリを複製します。

README.md ファイルを作成しよう

GitHub README Demo

このリポジトリの説明や、使い方などを、見ている人に伝える役目を担うのが README.md ファイルです。

この md 拡張子は Markdown の 略で、この md拡張子のファイルには Markdown記法で文章を作成します。

基本的な書き方とフォーマットの構文 – GitHub Docs

絵文字は以下のページから該当する絵文字のタグを記入します。

🎁 Emoji cheat sheet for GitHub, Basecamp, Slack & more

Gitのバージョン管理に含めない

.gitignore ファイルを作成する

.gitignore ファイルを作成して Git の管理に含めないファイルを指定することができます(まだインデックスに登録していないファイルのみ)。


.idea
/build/*
!/build/package.json
!/build/package-lock.json
/node_modules/*
/web_modules/*
yarn-error.log
                

この場合だと、/build/* とすることで buildディレクトリ以下のファイルはすべて含めないが、!を付けた !/build/package.jsonGitの管理に含めるといった書き方になります。

Gitからファイルを削除する

既にインデックス済みのファイルを Git の管理から削除する場合は以下のコマンドを実行します。


$ git rm -r [ファイルまたはディレクトリのパス]
                

同時にファイルそのものを削除する場合は、--cached オプションを設定します。


$ git rm --cached -r [ファイルまたはディレクトリのパス]
                

課題

GitHubのアカウントを作成してください。

リモートリポジトリを作成してください。この時 README.md ファイルと .gitignore ファイルも作成してください。

作成したリモートリポジトリにプッシュしてください。