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

2025年1月28日(火)
石本 達也
第2回の今回は、DevOpsツールの中でも重要な役割を果たす「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 clonegit pushgit 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コマンドを使用します。

  1. ローカルで変更を加えたファイルをステージングエリアに追加します。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
  2. 変更をコミットします。実際には、変更内容に応じて適切なメッセージを付けてコミットします。今回は簡単に「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行で簡潔に表示できるため、簡単な確認作業に適しています。
  3. 最後に、リモートリポジトリに変更をプッシュします。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の魅力に触れてみてください。

日本仮想化技術株式会社
Sierやベンチャー企業を経て、現在は日本仮想化技術でDevOps支援サービス「かんたんDevOps」のDev側を担当。「DevOpsを通じて開発者体験を最大化する」をミッションに理想的な開発環境の実現を目指して技術調査や仕組み作りを行っている。

連載バックナンバー

システム開発技術解説
第3回

「GitHub」にブランチ保護、Dependabot、Secret Scanningを設定してみよう

2025/2/18
第3回の今回は、GitHubのリポジトリを安全かつ効率的に管理する「ブランチ保護」「Dependabot」「Secret Scanning」について解説します。
システム開発技術解説
第2回

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

2025/1/28
第2回の今回は、DevOpsツールの中でも重要な役割を果たす「GitHub」について解説します。
システム開発技術解説
第1回

なぜ、DevOpsの実践にツールが必要となるのか

2025/1/7
本連載では、OSSを題材にDevOpsの開発サイクルを実践的に学ぶ方法を解説していきます。第1回の今回は、その基本概念とツールの重要性について解説します。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています