「GitHub」にリポジトリを作成してみよう

はじめに
ソフトウェア開発において、効率的なコード管理とチームでの協力は欠かせません。特に、コードのバージョン管理やチーム間での共同作業を支援するツールとして「GitHub」は重要な役割を果たします。現在では、ソフトウェア開発における主流のプラットフォームとして、多くの開発者に利用されています。
GitHubを活用することで、コードの共有やレビュー、バグの追跡といった作業をスムーズに行うことができ、開発プロセスを効率化することが可能です。GitHubの基本機能を理解し活用することで、より質の高いチーム開発と迅速なソフトウェア開発を実現していきましょう。
GitHubとは
ソフトウェア開発において、コードを管理し、複数の開発者が協力して作業を進めるためのツールが必要です。GitHubは、そんな開発者たちにとって欠かせないプラットフォームの1つです。
GitHubはソースコードを「Git」というバージョン管理システムを使ってリモートで管理するサービスです。リモートリポジトリとして利用できるだけでなく、世界中の開発者とコードを共有し、協力するための強力なツールを提供しています。例えば、コードの変更履歴を追跡したり、他の開発者と共同で作業するための「プルリクエスト(PR)」機能や「イシュー」と呼ばれるバグや進行中のタスクの管理機能も備わっています。
また、GitHubはオープンソースプロジェクトを支援するための場所としても広く利用されています。多くの有名なプロジェクトはGitHub上で公開され、誰でもそのコードを閲覧したり、改善したりできます。これにより、開発者同士がコードの共有や改善をし、ソフトウェアの品質が向上しています。
初心者にとってGitHubは少し難しく感じるかもしれませんが、基本的な使い方を学べば、誰でも効率的にソフトウェア開発ができるようになります。本連載では、GitHubの基本的な使い方について、初心者でも理解できるようにステップバイステップで解説していきます。GitHubを使いこなすことでチームでの開発がスムーズに進み、プロジェクトの管理も効率良く行えるようになります。
GitHubの基本的な使い方
GitHubのアカウントを作成するには、公式ガイドに沿って手順を進めてください。詳細な手順については、GitHubの公式ドキュメントを参照のうえ、アカウントを作成してください。
リポジトリの作成
GitHubでは、ソースコードやプロジェクトファイルを管理するために「リポジトリ」を作成します。リポジトリはプロジェクトの各種ファイルやその履歴を保存する場所です。ここでは、リポジトリの作成方法を説明します。ここでは基本的なポイントに絞って解説するので、詳しくは公式ドキュメントの「新しいリポジトリの作成ページ」を参照してください。
GitHubアカウントを作成し、ログインした後、右上にある「+」ボタンをクリックし、「New repository(新しいリポジトリ)」を選択します。
画面が遷移するとリポジトリの作成画面が表示されるので、必要な情報を入力していきます。
リポジトリ名の入力
新しいリポジトリの名前を入力します。リポジトリ名はプロジェクトを識別するための重要な名前です。なるべく分かりやすく、プロジェクトの内容を反映した名前を選びましょう。
例えば“devops-tools”のように、プロジェクトの名前をそのまま使われることが多いです。リポジトリ名は後から変更できますが、変更による影響を避けるため、最初に慎重に考えて選ぶようにしてください。
リポジトリの公開・非公開設定
リポジトリを公開(Public)にするか、非公開(Private)にするかを選択できます。公開リポジトリは誰でも閲覧できますが、非公開リポジトリは特定のユーザーのみがアクセスできます。GitやGitHubの操作になれないうちは、他者に見せてはいけない情報をコミットしてしまうかもしれません。非公開リポジトリに設定し、誤った操作から情報を守れるようにしておくのがオススメです。
しかし、非公開リポジトリにも機能制限というデメリットがあります。例えば、公開リポジトリでは無制限で使用できたGitHubの機能が、非公開リポジトリでは使用上限が設けられています。これは公開リポジトリがGitHubのオープンソースプロジェクト支援を受けられるためです。プロジェクトの性質によって適切な設定を選択してください。ここでは執筆の都合上、公開リポジトリを前提に説明します。
READMEファイルの追加
READMEファイルは、プロジェクトの説明や使い方、インストール方法などを記載する場所です。このファイルがプロジェクトの最初の案内役となります。
Initialize this repository with:の「Add a README file」のチェックボックスをオンにすると、GitHubが自動的にREADMEファイルを作成してくれます。
GitHubの操作に慣れていない場合は、リポジトリの作成時にREADMEファイルも追加しておきましょう。READMEファイルは後から追加・編集もできますが、初回の操作がやや複雑になるため、最初から追加しておくと便利です。
.gitignoreファイルの追加.gitignore
ファイルは、Gitで管理しないファイルやディレクトリを指定するためのファイルです。例えば、開発中の一時ファイルやセキュリティ情報などを除外するために使用します。手作業で1つずつ指定できますが、GitHubでは多くの言語やフレームワークに対応した.gitignore
ファイルを提供しています。最近は、特定のフレームワークを使用する際に自動で生成されることもあるので、必要に応じて追加してください。
リポジトリの作成
必要な設定が完了したら、ページ下部の「Create repository」ボタンをクリックします。これでリポジトリが作成され、プロジェクトがGitHubに保存される準備が整いました。
作成したリポジトリは、すぐにGitHubアカウントのページから確認できます。
リモートリポジトリの操作
GitHubで作成したリポジトリをローカル環境で操作するには、リモートリポジトリをGitコマンドを使用してクローン(コピー)してローカルに持ってくる必要があります。Gitコマンドは事前にインストールを済ませておいてください。リモートリポジトリを操作する基本的なコマンドとしてgit clone
、git push
、git pull
の3つがあります。ここではそれぞれの操作方法を説明します。
リモートリポジトリのクローン(git clone)
まずは、GitHub上のリポジトリを自分のPCにコピーして、ローカルリポジトリを作成します。これを「クローン」といいます。クローンする方法はいくつかありますが、ここではHTTPSを使った方法を紹介します。それ以外の方法については、この後の説明で触れます。
ターミナルを開いたらクローンしたディレクトリに移動し、git clone <リポジトリのURL>
を実行してリモートリポジトリからローカルリポジトリを作成します。
$ git clone <リポジトリのURL>
クローンが成功するとリモートリポジトリ名のディレクトリが作成され、その中にリポジトリのファイルがコピーされます。cd <リポジトリ名>
でディレクトリに移動し、ls
で中身を確認できます。
$ cd devops-tools $ ls
無事にリモートリポジトリにあるファイルがローカルにコピーされていることが確認できました。
$ git clone https://github.com/VirtualTech-DevOps/devops-tools.git Cloning into 'devops-tools'... remote: Enumerating objects: 4, done. remote: Counting objects: 100% (4/4), done. remote: Compressing objects: 100% (3/3), done. remote: Total 4 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0) Receiving objects: 100% (4/4), done. $ cd devops-tools $ ls LICENSE README.md
クローン方法の種類について
リモートリポジトリからクローンする際に、HTTPSまたはSSH、GitHub CLIのいずれかの方法を選択できます。今回は使用しない方法についても簡単に説明します。
HTTPS
HTTPSは、HTTPSプロトコルを介してリモートリポジトリへアクセスする方法です。コマンドラインでHTTPSを使う場合、GitHubのパスワード認証は廃止されているため、代わりにpersonal access token(PAT)を入力する必要があります。認証情報を毎回入力したくない場合はGit Credential Managerなどを利用してキャッシュするのがオススメです。
SSH
SSHは、SSHプロトコルを介してリモートリポジトリへアクセスする方法です。使用するにはSHキーペアを生成し、公開鍵をGitHubアカウントに登録する必要があります。また、作業環境によって22番ポートへのアクセスが制限されている場合はSSHを使用できないことがあります。
GitHub CLI
GitHub CLIはGitHubが公式に提供しているオープンソースのコマンドラインツールです。GitHub CLIを使うとGitHubのリポジトリを直接操作できるため、リモートリポジトリのクローンやプルリクエストの作成などが簡単に行えます。
変更内容をリモートに反映する(git push)
ローカルで作業した変更をGitHubのリモートリポジトリに反映させるには、git pushコマンドを使用します。
- ローカルで変更を加えたファイルをステージングエリアに追加します。
echo 'Hello, World!' > hello.txt
のようにファイルを作成し、git add .
でステージングエリアに追加します。$ echo 'Hello, World!' > hello.txt $ ls LICENSE README.md hello.txt
$ git add .
git status
でステージングエリアに追加されたファイルを確認できます。$ git status On branch main Your branch is up to date with 'origin/main'. Changes to be committed: (use "git restore --staged <file>..." to unstage) new file: hello.txt
- 変更をコミットします。実際には、変更内容に応じて適切なメッセージを付けてコミットします。今回は簡単に「Add hello.txt」としています。
$ git commit -m "Add hello.txt"
git log
で先ほどのコミットが追加されたことを確認できます。$ git log —-oneline 729e85f (HEAD -> main) Add hello.txt 8e293d4 (origin/main, origin/HEAD) Initial commit
オプションを指定せずに実行するgit logコマンドは、詳細な情報を表示します。一方で、--onelineオプションを付けることで、1行で簡潔に表示できるため、簡単な確認作業に適しています。 - 最後に、リモートリポジトリに変更をプッシュします。originはリモートリポジトリの名前、mainはブランチ名です。リポジトリをクローンした際に自動的に設定されることが多いですが、必要に応じて異なるブランチ名を指定することもあります。
$ git push origin main
コマンドを実行すると、リモートリポジトリに追加したhello.txt
のファイルが反映されます。
リモートリポジトリの変更を取り込む(git pull)
他のメンバーがリモートリポジトリに変更を加えた場合、その変更をローカルに取り込むにはgit pullコマンドを使用します。
今回は、擬似的に他の人の変更をGitHubページ上から直接コミットを作成して変更したとみなします。この場合、ローカルリポジトリにはまだ変更が反映されていないため、git pull
でリモートリポジトリの変更を取り込みます。
GitHubページにアクセスしてAdd file > Create new file
を選択し、ファイル名をtool.txt
、内容をTools
と入力します。最後にCommit changes...
をクリックして変更をコミットします。
この時点でリモートリポジトリにはtool.txt
が追加されていますが、ローカルリポジトリにはまだ変更が反映されていません。git pull
を実行することで、リモートリポジトリの変更をローカルに取り込むことができます。
$ git pull origin main
originはリモートリポジトリの名前、mainはブランチ名です。これにより、リモートリポジトリの最新の状態がローカルリポジトリに反映されます。
$ git pull origin main remote: Enumerating objects: 4, done. remote: Counting objects: 100% (4/4), done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 1), reused 0 (delta 0), pack-reused 0 (from 0) Unpacking objects: 100% (3/3), 927 bytes | 231.00 KiB/s, done. From https://github.com/VirtualTech-DevOps/devops-tools * branch main -> FETCH_HEAD 729e85f..402cfdd main -> origin/main Updating 729e85f..402cfdd Fast-forward tool.txt | 1 + 1 file changed, 1 insertion(+) create mode 100644 tool.txt $ ls LICENSE README.md hello.txt tool.txt
tool.txt
がローカルリポジトリに追加されていることが確認できました。
おわりに
今回は、GitHubのリポジトリ作成を中心に、基本的な使い方を紹介しました。DevOpsにおいては、アプリケーションやインフラがすべてコードで管理されることが基本であり、その中心となるのがソースコードのホスティングです。
しかし、単なるコードのリポジトリだけでは、チーム開発やプロジェクト管理のニーズに応えることはできません。GitHubはGitをベースにした開発プラットフォームとして、コード管理に加え、チームでのコラボレーションやプロジェクトの効率化を支援する豊富な機能を提供しています。その柔軟性と利便性から、現在ではソフトウェア開発の主流となっています。
GitHubを活用することで、チームでの協力がスムーズになるだけでなく、開発プロセスを自動化し、より効率的な作業が可能になります。まずは今回で紹介した基本機能を試し、GitHubの魅力に触れてみてください。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- 「GitHub」にブランチ保護、Dependabot、Secret Scanningを設定してみよう
- DevOpsのアプリ開発にも欠かせない「Git」を活用したソースコードのバージョン管理
- DevOpsにおける開発者の振る舞いを理解しよう
- WSLとWindowsの設定ファイルを「chezmoi」を使って安全に管理しよう
- CI/CDを実現するツール「GitHub Actions」を使ってみよう
- Node.jsとExpress.jsで開発したWebアプリをeXcaleで動かす
- これだけは押さえておきたいGitHub Flowの基礎
- Kubernetes上のアプリケーション開発を加速させるツール(1) Skaffold
- RevertとBlameを使いこなして安全性の高い開発を推進しよう
- 実践「Heroku」をセットアップしてサンプルアプリを動かそう