
本記事の目的
GitHub は、個人のプロジェクト管理から大規模なチーム開発、さらにはオープンソースコミュニティへの貢献まで、幅広い用途で活用できる強力なツールです。
本記事では、macOS Sequoia を利用する初心者の方に向けて、GitHub のアカウント作成から基本的な操作、そして安全な利用方法までを詳細に解説しました。具体的なコマンド例交えて、実践的な使い方を学ぶことができます。
本ガイドで紹介した手順と注意点を参考に、ぜひGitHubの世界に飛び込んでみてください!
本記事の対象読者
- GitHubを初めて使う人
- バージョン管理について知りたい人
- macOS Sequoia環境で開発を始めようとする人
- オープンソースプロジェクトに参加したい人
もくじ
- Githubの概要紹介
- なぜGithubを使うのか
- Githubでできること
- Githubのユースケース
- 事前準備
- アカウント作成手順(GitHubへのサインアップ)
- 初期設定
- 基本操作
- 利用に当たっての注意点
- 他のサービスとの比較
- 参考情報
- まとめ
Githubの概要紹介
GitHubは、米国のソフトウェア開発会社GitHub, Inc.が運営するクラウドベースのリポジトリホスティングサービスです。2008年に登場して以来、世界中の開発者が協力してソフトウェアを作成・管理するための中心的なプラットフォームとなっています。
GitHubの核心はGit(分散型バージョン管理システム)です。Gitにより、複数人が同時にコードを編集したり、過去の変更履歴を追跡したり、異なるバージョンのコードを管理したりすることが可能になります。
GitとGitHubは、同じ技術をベースとしていますが、それぞれ役割が以下のように異なります。
- Git:ローカル環境で動作するバージョン管理ソフト(ターミナルから操作)
- GitHub:Gitで管理したコードをクラウド上で保存・共有するプラットフォーム
Gitでローカルで変更を管理し、GitHubにプッシュすることで、複数人との共同作業やバックアップ、CI/CDなどの機能を活用できるようになり、開発者にとっての強力な開発環境となります。
なぜGithubを使うのか
GitHubがこれほどまでに広く利用されているのには、いくつかの理由があります。
個人とチームの共通のメリット
理由 | 説明 |
---|---|
無料で利用を開始できる | プライベートリポジトリを含め、多くの機能を無料で利用できるため、個人開発者から小規模なチームまで、気軽に始めることができます。 |
高度なセキュリティが必要であれば、有料機能を追加で利用することができます。 |
個人のメリット
理由 | 説明 |
---|---|
バージョン管理と履歴管理 | Gitの機能を活用し、ソースコードやドキュメントの変更履歴を詳細に記録・管理できます。 「いつ」「誰が」「何を」変更したのかが明確になり、必要に応じて過去のバージョンへの復元も容易です。 |
コードの安全なバックアップ | クラウド上にコードが保存されるため、ローカルPCの破損や紛失時でも大切なデータを保護できます。 |
個人のスキル証明とポートフォリオ | 自身の開発活動や貢献がGitHubプロフィールに記録されるため、スキルを証明するポートフォリオとして活用できます。 |
世界的なオープンソースコミュニティへの参加 | 世界最大のオープンソースコミュニティに参加し、他の開発者とのコラボレーションや知識共有の機会を得られます。 自身のプロジェクトを公開したり、他者のプロジェクトに貢献したりすることで、スキルアップにも繋がります。 |
チームのメリット
理由 | 説明 |
---|---|
開発プロセスの自動化 | GitHub ActionsなどのCI/CD機能が組み込まれており、コードのテスト、ビルド、デプロイといった一連のプロセスを自動化し、開発環境の構築を迅速化できます。 |
開発ツールとの連携 | 多くの開発ツールやサービスとシームレスに連携できるため、既存のワークフローに組み込みやすく、開発効率をさらに高めることが可能です。 |
リモートワークへの対応 | オンライン上で開発作業を完結できるため、地理的に離れたチームメンバーとの共同開発や、リモートワーク環境での作業に最適です。 |
効率的な共同開発と品質向上 | 複数の開発者が同時に同じプロジェクトに取り組む際に、コードの共有、変更の統合、コードレビューなどをスムーズに行えます。 特にプルリクエストを通じたコードレビューは、コードの品質向上とチーム内のコミュニケーション活性化に大きく貢献します。 |
Githubでできること
GitHubでは、主に以下のようなことができます。
機能 | 説明 |
---|---|
バージョン管理 | ソースコードやドキュメントなどのファイルの変更履歴を記録し、管理します。 |
ソースコードの共有と管理 | プロジェクトのソースコードをオンライン上で公開・共有し、一元的に管理できます。 |
共同開発 | 複数の開発者が共同で開発を進めるための機能です。具体的には、リポジトリ(ファイルの保管庫)の作成と同期、コミットとプッシュによる変更履歴の保存とアップロード、ブランチによる並行開発、プルリクエストによるコードレビューと統合、フォークによる他者リポジトリのコピーと貢献が可能です。 |
プロジェクト管理 | 課題管理(Issues)、タスク管理、コードレビューなど、チームでの開発作業を効率的に進めるための機能が提供されています。 |
CI/CDの自動化 | GitHub Actionsなどの機能を利用して、コードのテスト、ビルド、デプロイといった一連のプロセスを自動化できます。 |
情報共有とコミュニケーション | 変更箇所の可視化やコメント機能を通じて、開発者間のコミュニケーションを円滑にします。 |
Githubのユースケース
GitHubは多岐にわたる用途で活用できます。
1. 個人開発者
- 自身のプロジェクトを管理する
- Webアプリケーション、モバイルアプリ、デスクトップアプリ、ライブラリ、フレームワークなどの開発
- プログラミングだけでなく、WebデザイナーやWebライターがテキストデータやデザインファイルのバージョン管理にも利用できます。
- ポートフォリオとしてGitHubプロフィールを構築する
- 採用活動において、応募者のコーディングスキルや開発経験を確認するためにGitHubアカウントの提出を求める企業もあります。
- オープンソースコミュニティに参加する
- Linuxカーネル、React、Vue.js、TensorFlowなど、数多くの有名プロジェクトがGitHubでホストされています。
2. 企業/組織
- 内部プロジェクトのバージョン管理
- 開発チーム間の協業を円滑化
- コードレビュープロセスの標準化
3. 教育
- プログラミングの学習資料として使用
- 学生同士で協力プロジェクトを実施
事前準備
Homebrewを使ったGitインストール
macOSでGitを簡単にインストールする方法としてHomebrew(パッケージ管理システム)を使用します。
手順1:Homebrewのインストール(初回のみ)
ターミナル(Terminal.app)を開き、以下のコマンドを入力してEnterキーを押します。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
インストールが完了するまで待ちます。
手順2:Gitのインストール
Homebrewを使ってGitをインストールします。
brew install git
手順3:Gitのバージョン確認
インストールが成功したかを確認します。
git --version
# 出力例:git version 2.51.0
Homwbrewとローカル環境への Gitのインストールについての詳細は、以下の記事を参照してください。
環境変数の設定
Gitを使用する前に、コミット時に表示されるユーザ名とメールアドレスを設定します。これらの情報はGitHub上に表示されるため、適切なものを設定してください。
手順1:ユーザ名の設定
git config --global user.name "あなたのGitHubユーザ名"
# 例:git config --global user.name "hogehoge"
手順2:メールアドレスの設定
git config --global user.email "あなたのメールアドレス"
# 例:git config --global user.email "hogehoge@example.com"
手順3:設定内容の確認
以下のコマンドで設定した値を確認できます。
git config --list
# 出力例:
user.name=hogehoge
user.email=hogehoge@example.com
アカウント作成手順(GitHubへのサインアップ)
GitHub アカウントの作成はウェブブラウザで行えます。
- ウェブブラウザを開く: Safari、Chrome、Firefoxなど、お好みのウェブブラウザを起動します。
- GitHubのウェブサイトにアクセスする: アドレスバーに
https://github.com/
と入力し、GitHubの公式サイトに移動します。 - サインアップを開始する: ページの右上または中央にある「Sign up」(サインアップ)ボタンをクリックします。
- アカウント情報を入力する:
- メールアドレスを入力します。
- パスワードを作成します。
- ユーザー名を選択します。
- 画面の指示に従って、追加の質問(例: プロダクトのアップデート情報を受け取るかなど)に回答します。
- パズルを解いて認証する: ロボットではないことを証明するために、表示される簡単なパズルを解きます。
- メールアドレスを確認する: 入力したメールアドレスにGitHubから確認メールが送信されます。メールを開き、記載されているリンクをクリックしてメールアドレスを認証します。
これでGitHubアカウントの作成が完了し、利用を開始できます。
初期設定
GitHubをより安全かつ便利に利用するために、初期設定としてSSHキーとパーソナルアクセストークン(PAT)を設定することを強く推奨します。
SSHキーの生成と登録(推奨)
SSH(Secure Shell)キーは、パスワードなしでGitHubに安全に接続するための認証方法です。毎回パスワードを入力する手間が省け、セキュリティも向上します。
手順1:既存のSSHキーを確認する
まず、すでにSSHキーが生成されているかを確認します。
ターミナル(macOSのアプリケーションフォルダ内の「ユーティリティ」にあります)を開き、以下のコマンドを実行してください。
ls -al ~/.ssh
# 出力例:
ls: /Users/hogehoge/.ssh: No such file or directory
もし id_ed25519.pub
や id_rsa.pub
のようなファイルが表示された場合、既存のSSHキーがあります。新しいキーを生成するか、既存のキーを使用するかを決定してください。
手順2:新しいSSHキーを生成する
新しいSSHキーを生成するには、以下のコマンドをターミナルで実行します。"your_email@example.com"
の部分をあなたのGitHub登録メールアドレスに置き換えてください。
ターミナルで以下のコマンドを入力します。your_email@example.com
には、先ほど設定したメールアドレスを入力してください。
ssh-keygen -t ed25519 -C "your_email@example.com"
# 出力例:
Generating public/private ed25519 key pair.
手順2:キーの保存先を指定
Enterキーを押すと、デフォルトの保存先(~/.ssh/id_ed25519
)が提案されます。そのままEnterキーを押してください。
- キーを保存するファイルの入力を求められたら: Enterキーを押して、デフォルトのファイルパス(例:
/Users/your_username/.ssh/id_ed25519
)を受け入れます。
手順3:パスフレーズの設定(任意)
セキュリティを強化するために、パスフレーズを設定できます。Enterキーを2回押せばパスフレーズなしでも使用可能ですが、推奨しません。
- パスフレーズの入力を求められたら: セキュリティのためにパスフレーズを設定することを強く推奨します。パスフレーズは、キーを使用するたびに必要になります。パスフレーズなしで進む場合は、何も入力せずにEnterキーを2回押してください。
以下、コマンドの実行例を示します。
hogehoge@mac ~ % ssh-keygen -t ed25519 -C "hogehoge@example.com"
Generating public/private ed25519 key pair.
Enter file in which to save the key (/Users/hogehoge/.ssh/id_ed25519):
Created directory '/Users/hogehoge/.ssh'.
Enter passphrase for "/Users/hogehoge/.ssh/id_ed25519" (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /Users/hogehoge/.ssh/id_ed25519
Your public key has been saved in /Users/hogehoge/.ssh/id_ed25519.pub
The key fingerprint is:
SHA256:xxxxxx hogehoge@example.com
The key's randomart image is:
+--[ED25519 256]--+
|.o. . . |
|+ = o . o |
|.+ oo+o.o |
+----[SHA256]-----+
hogehoge@mac ~ %
※ GitHubは安全なパスフレーズの入力を推奨しています。
Working with SSH key passphrases – User Documentation
手順4:SSHキーの表示
生成された公開鍵を表示します。
cat ~/.ssh/id_ed25519.pub
手順5:GitHubにSSHキーを登録
- GitHubのWebサイトにログインします。
- 右上のアバターをクリック → Settings を選択します。
- 左側のメニューから SSH and GPG keys を選択します。
- New SSH key ボタンをクリックします。
- Title に任意の名前(例:”MacBook Air 2025″)を入力します。
- Key Typeに、
Authentication Key
を選択します。 - Key フィールドに先ほど表示した公開鍵を貼り付けます。
- Add SSH key ボタンをクリックします。
手順6:SSH接続のテスト
以下のコマンドでGitHubとの接続を確認します。
ssh -T git@github.com
初めて接続する場合、ホストの信頼性を確認するメッセージAre you sure you want to continue connecting (yes/no)?
が表示されることがあります。その場合は yes
と入力してEnterキーを押してください。
成功すると、以下のようなメッセージが表示されます。
Hi <your_username>! You've successfully authenticated, but GitHub does not provide shell access.
<your_username>
の部分があなたのGitHubユーザー名であれば、SSH接続は正常に設定されています。
以下、コマンドの実行例を示します。
hogehoge@mac ~ % ssh -T git@github.com
The authenticity of host 'github.com (20.27.177.113)' can't be established.
ED25519 key fingerprint is SHA256:xxxx
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added 'github.com' (ED25519) to the list of known hosts.
Enter passphrase for key '/Users/hogehoge/.ssh/id_ed25519':
Hi hogehoge! You've successfully authenticated, but GitHub does not provide shell access.
hogehoge@mac ~ %
パーソナルアクセストークン(PAT)の生成と登録
パーソナルアクセストークン(PAT)は、GitHub APIやGitコマンドでリポジトリにアクセスする際に、パスワードの代わりとして使用される認証手段です。セキュリティ向上のため、パスワード認証は非推奨となっています。
- GitHubのWebサイトにログインします。
まず、ウェブブラウザでGitHubにアクセスし、ご自身のアカウントにログインします。 - 設定ページへ移動します。
画面右上のプロフィールアイコンをクリックし、ドロップダウンメニューから「Settings」(設定)を選択します。 - 開発者設定へ移動:
左側のサイドバーメニューから「Developer settings」(開発者設定)をクリックします。※一番下の方にあるので、スクロールして見つけてください。 - パーソナルアクセストークンを選択:
左側のサイドバーメニューの「Personal access tokens」をクリックし、次に「Tokens (classic)」を選択します。
注: GitHubは「fine-grained personal access tokens」の使用を推奨していますが、一般的な用途では「classic」トークンがよりシンプルです。 - 新しいトークンを生成:
「Generate new token」(新しいトークンを生成)ボタンをクリックし、さらに「Generate new token (classic)」を選択します。 - トークンの設定:
- Note (メモ): トークンの目的がわかるような説明的な名前(例: “My Mac Development Token”)を入力します。
- Expiration (有効期限): トークンの有効期限を設定します。セキュリティのため、無期限(No expiration)は推奨されません。必要な期間を選択してください。
- Select scopes (スコープの選択): このトークンに付与する権限を選択します。
- リポジトリ操作を行う場合は「repo」にチェックを入れます。必要な最小限の権限のみを付与する「最小権限の原則」に従うことが重要です。
- トークンを生成:
設定が完了したら、ページ下部の「Generate token」(トークンを生成)ボタンをクリックします。 - トークンをコピーして保存:
生成されたトークンは一度しか表示されません。この画面を離れると二度と表示されないため、必ずすぐにコピーし、安全な場所に保存してください。パスワードマネージャーなどに保存することをお勧めします。
これでGitHubのパーソナルアクセストークンが作成されました。Gitコマンドライン操作などでパスワードを求められた際に、このトークンをパスワードとして使用できます。
よく使う主要なスコープの解説
たくさんのスコープがありますが、まずは特に利用頻度の高いもの(repo, public_repo)を覚えましょう。
スコープ名 | 権限の概要(できること) | こんな時に使う |
repo | プライベートリポジトリを含む、すべてのリポジトリへのフルアクセス権 | 最もよく使われるスコープです。自分のPCからプライベートリポジトリにgit push(アップロード)したり、git clone(ダウンロード)したりする場合に必要です。 |
public_repo | 公開リポジトリへのアクセス権 | 公開リポジトリにだけアクセスできれば良い場合に使います。 |
workflow | GitHub Actionsのワークフローを操作する権限 | git pushしたときに自動テストなどを実行するGitHub Actionsの設定ファイル(.github/workflows)を更新する場合に必要です。 |
gist | Gist(コードの断片を共有する機能)の作成や編集 | Gistをプログラムから操作したい場合に選びます。 |
user | プロフィール情報の読み取りと変更 | アプリケーションがあなたのプロフィール情報を読み取ったり、変更したりすることを許可します。user:email(メールアドレスの読み取り)なども含まれます。 |
delete_repo | リポジトリを削除する権限 | 非常に強力で危険な権限です。 間違ってリポジトリを消してしまう可能性があるため、特別な理由がない限りチェックは入れないようにしましょう。 |
admin:org | 組織(Organization)の管理者権限 | 組織のメンバー追加やリポジトリ作成などをプログラムから行いたい場合に使います。これも非常に強力な権限なので、取り扱いには細心の注意が必要です。 |
ポイント:
スコープにチェックを入れると、その下位の権限もまとめて許可されます。例えばrepoにチェックを入れると、repo:statusやpublic_repoなど、リポジトリ関連の細かい権限がすべて有効になります。
初心者はどう選べばいいか?
「自分のPCからプライベートリポジトリのコードを編集したい」 という、最も一般的な使い方であれば、repoスコープだけを選択すれば十分です。
もし他のツールやサービスと連携するためにPATを作成する場合は、そのツールの公式ドキュメントを確認し、指定された必要最小限のスコープを選ぶようにしてください。
基本操作
GitHubでの基本的な操作を、コマンドライン(ターミナル)とGitHubのウェブUIの両方で解説します。
リポジトリ作成
リポジトリ(プロジェクトフォルダ)を標準の Git コマンドを使ってリポジトリを作成し、プッシュすることができます。この方法では、GitHub 上で先に空のリポジトリを作成する必要があります。
GitHub 上で空のリポジトリを作成
- ウェブブラウザでGitHubにログインします。
- GitHubのホーム画面で 画面右上の「+」アイコンをクリックし、New repository ボタンをクリックします。
- Repository name にプロジェクト名を入力します(例:
hello-world
)。 - Description にプロジェクトの説明を入力します(任意)。
- Public か Private を選択します。
- READMEファイルや.gitignoreファイルは追加しないでおくことを推奨します(後でローカルから追加するため)。
- Create repository ボタンをクリックします。
- リポジトリ作成後、表示されるリモートリポジトリのURL をコピーしておきます。
認証がSSHキーの場合SSH または、PATの場合HTTPS のURLをコピーしてください。
SSHの例:git@github.com:hogehoge/hello-world.git
リモートリポジトリ作成前の画面イメージ

リポジトリ作成後の初期表示画面イメージ

ローカルリポジトリの準備
ターミナルで以下のコマンドを実行します。
# 作業用フォルダを作成して移動
mkdir hello-world && cd hello-world
# Gitリポジトリを初期化
git init
以下、コマンドの実行例を示します。
hogehoge@mac repo % mkdir hello-world && cd hello-world
hogehoge@mac hello-world % git init
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: git branch -m <name>
hint:
hint: Disable this message with "git config set advice.defaultBranchName false"
Initialized empty Git repository in /Users/hogehoge/repo/hello-world/.git/
プロジェクトのファイルをステージングし、コミットします。
# READMEファイルを作成
echo '# My First GitHub Repository' > README.md
# ファイルをステージング
git add README.md
# コミットする
git commit -m "Initial commit"
以下、コマンドの実行例を示します。
hogehoge@mac hello-world % echo '# My First GitHub Repository' > README.md
hogehoge@mac hello-world % git add README.md
hogehoge@mac hello-world % git commit -m "Initial commit"
[master (root-commit) 5613849] Initial commit
1 file changed, 1 insertion(+)
create mode 100644 README.md
hogehoge@mac hello-world %
もし、まだGitのユーザー名とメールアドレスを設定していない場合は、以下のコマンドで設定してください。
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
コピーしておいたGitHubリポジトリのURLを origin
として追加し、ローカルのコミットをプッシュします。
# GitHubにリモートリポジトリを登録
git branch -M main
git remote add origin git@github.com:hogehoge/hello-world.git
# 変更をGitHubにプッシュ
git push -u origin main
これで、コマンドラインからGitHubリポジトリを作成し、プロジェクトをプッシュが完了しました。
リモートのリポジトリに、README.mdが登録されていることを確認してください。
以下、コマンドの実行例を示します。
SSHキーにパスフレーズを設定している場合は、プッシュ時にパスフレーズの入力が求められます。
hogehoge@mac hello-world % git branch -M main
hogehoge@mac hello-world % git remote add origin git@github.com:hogehoge/hello-world.git
hogehoge@mac hello-world % git push -u origin main
Enter passphrase for key '/Users/hogehoge/.ssh/id_ed25519':
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 252 bytes | 252.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To github.com:hogehoge/hello-world.git
* [new branch] main -> main
branch 'main' set up to track 'origin/main'.
hogehoge@mac hello-world %
ファイルの作成・変更
リポジトリ内のファイルを操作する方法です。
Gitは、ファイルの内容の変更を追跡できます。
新しいファイルを作成
このコマンドは index.html
というファイルを作成し、「Hello, GitHub!」というテキスト表示するコードを書き込みます。
# index.htmlファイルを作成
echo '<!DOCTYPE html><html><body><h1>Hello GitHub!</h1></body></html>' > index.html
既存ファイルを編集
既存のファイルを開いて内容を編集します。これは、テキストエディタ(VS Codeなど)やIDE(統合開発環境)で行ってください。
README.md
を開き、以下のように内容を追加します。
# My First GitHub Repository
Hello, GitHub!
This is my first change.
コミット操作
コミットは、プロジェクトの状態を記録する操作です。
ファイルを作成したり変更したりしたら、その変更をリポジトリに記録(コミット)します。コミットは、プロジェクトの「スナップショット」のようなものです。
基本的なコミットフロー
どのファイルが変更されたかを確認します。
# 変更したファイルを確認
git status
これにより、新しく作成されたファイルや変更されたファイルが表示されます。
以下、コマンドの実行例を示します。
hogehoge@mac hello-world % git status
On branch main
Your branch is up to date with 'origin/main'.
Untracked files:
(use "git add <file>..." to include in what will be committed)
index.html
nothing added to commit but untracked files present (use "git add" to track)
hogehoge@mac hello-world % vi README.md
hogehoge@mac hello-world % git status
On branch main
Your branch is up to date with 'origin/main'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
Untracked files:
(use "git add <file>..." to include in what will be committed)
index.html
no changes added to commit (use "git add" and/or "git commit -a")
hogehoge@mac hello-world %
index.html
が「Untracked files」(追跡されていないファイル)として表示されています。これは、Gitがまだこのファイルを管理していないことを意味します。
コミットしたい変更を「ステージングエリア」に追加します。ステージングエリアは、次にコミットする内容を準備する場所です。
git add index.html
git add README.md
# または、すべての変更をステージングエリアに追加する場合
# git add .
再度 git status
を実行すると、index.html
、README.md
が「Changes to be committed」(コミットされる変更)として表示されます。
以下、コマンドの実行例を示します。
hogehoge@mac hello-world % git status
On branch main
Your branch is up to date with 'origin/main'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
Untracked files:
(use "git add <file>..." to include in what will be committed)
index.html
no changes added to commit (use "git add" and/or "git commit -a")
hogehoge@mac hello-world % git add index.html
hogehoge@mac hello-world % 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: index.html
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
hogehoge@mac hello-world % git add README.md
hogehoge@mac hello-world % 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)
modified: README.md
new file: index.html
hogehoge@mac hello-world %
ステージングエリアに追加された変更をリポジトリに記録します。
コミットには、その変更内容を簡潔に説明する「コミットメッセージ」を必ず含めます。
コミットメッセージは、インベントリフォーマットを使用:タイプ(範囲): 変更内容
します。
メッセージタイプの種類は、以下の例を参考にしてください。
git commit -m "feat: Add initial index file and Update README file"
コミットメッセージの例:
feat: 新機能の追加
fix: バグの修正
docs: ドキュメントの更新
refactor: コードのリファクタリング
chore: その他の変更(ビルド設定など)
- 例:
feat: add user authentication
,fix: resolve login bug
ローカルリポジトリにコミットした変更は、まだGitHub上のリモートリポジトリには反映されていません。これらの変更をリモートリポジトリに送信することを「プッシュ」と呼びます。
以下のコマンドを実行して、リモートリポジトリにプッシュしてください。
git push origin main
origin
: リモートリポジトリのエイリアス(通常はGitHub上のリポジトリを指します)。main
: プッシュしたいブランチ名(デフォルトはmain
またはmaster
)。
以下、コマンドの実行例を示します。
hogehoge@mac hello-world % git push origin main
Enter passphrase for key '/Users/hogehoge/.ssh/id_ed25519':
Enumerating objects: 6, done.
Counting objects: 100% (6/6), done.
Delta compression using up to 8 threads
Compressing objects: 100% (4/4), done.
Writing objects: 100% (4/4), 429 bytes | 429.00 KiB/s, done.
Total 4 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To github.com:hogehoge/hello-world.git
97aea68..462a977 main -> main
hogehoge@mac hello-world %
プッシュの成功後に、GitHub上のリポジトリにアクセスすると、変更(index.html)が反映されていることが確認できます。
コミット取り消し
誤ったコミットを元に戻す方法です。
Gitでは、誤ってコミットしてしまった場合や、コミット内容を変更したい場合に、コミットを取り消すことができます。
ただし、すでにリモートにプッシュしたコミットを取り消す場合は注意が必要です!他の開発者に影響を与える可能性があるので、チームで作業している場合は事前に相談しましょう。
直前のコミットを取り消す(ローカルのみ)
まだリモートにプッシュしていない直前のコミット(未プッシュのコミット)を取り消す場合によく使わいます。
取り消しの内容によって、いくつか方法があります。どこまで戻したいか?を確認して、コマンドを実行してください。
ユースケース: コミットメッセージを間違えたが、コードの変更はそのままにしたい場合。
- コミットは取り消すが、変更内容はワーキングディレクトリに残す (
--soft
): - コミットは履歴から消えますが、変更内容はステージングエリアに残ったままになります。再度
git add
する必要はありません。
git reset --soft HEAD~1
ユースケース: コミット内容自体をやり直したい場合。
- コミットは取り消し、変更内容もステージングエリアから戻す (
--mixed
– デフォルト): - コミットは履歴から消え、変更内容はステージングエリアからワーキングディレクトリに戻されます(
git add
する前の状態)。再度git add
からやり直す必要があります。
git reset --mixed HEAD~1
# または単に git reset HEAD~1
ユースケース: 直前のコミット内容が完全に不要で、その変更も破棄したい場合。
- コミットは取り消し、変更内容も完全に破棄する (
--hard
): - コミットは履歴から消え、変更内容も完全に破棄されます。この操作は元に戻せないので、実行する際は細心の注意を払ってください。
git reset --hard HEAD~1
既プッシュのコミットを取り消し(推奨)
ユースケース: チームで共有しているリポジトリで、過去の特定の変更を安全に取り消したい場合。
特定のコミットの変更を打ち消す新しいコミットを作成する (git revert
)git revert
は、過去の特定のコミットの変更内容を打ち消す新しいコミットを作成します。
元のコミットは履歴に残るため、すでにリモートにプッシュしたコミットを取り消す場合に安全な方法です。
- 取り消したいコミットのハッシュを確認:
git log --oneline
これにより、コミット履歴が簡潔に表示されます。
以下、コマンドの実行例を示します。
hogehoge@mac hello-world % git log --oneline
462a977 (**HEAD** -> **main**, **origin/main**) feat: Add initial index file and Update README file
97aea68 Initial commit
hogehoge@mac hello-world %
取り消したいコミットの先頭7桁程度のハッシュ(例: 462a977
)をコピーします。
git revert
を実行:
git revert <コミットハッシュ>
# 例: git revert 462a977
このコマンドを実行すると、新しいコミットメッセージの編集画面が表示されます。デフォルトのメッセージで問題なければ保存して閉じます。
- リモートにプッシュ:
新しいコミットが作成されたので、これをリモートにプッシュします。
git push origin main
以下、コマンドの実行例を示します。
hogehoge@mac hello-world % git log --oneline
462a977 (**HEAD** -> **main**, **origin/main**) feat: Add initial index file and Update README file
97aea68 Initial commit
hogehoge@mac hello-world % git revert 462a977
[main 19f8f2f] Revert "feat: Add initial index file and Update README file"
2 files changed, 4 deletions(-)
delete mode 100644 index.html
hogehoge@mac hello-world % git log --oneline
19f8f2f (**HEAD** -> **main**) Revert "feat: Add initial index file and Update README file"
462a977 (**origin/main**) feat: Add initial index file and Update README file
97aea68 Initial commit
hogehoge@mac hello-world % git push origin main
Enter passphrase for key '/Users/hogehoge/.ssh/id_ed25519':
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads
Compressing objects: 100% (1/1), done.
Writing objects: 100% (3/3), 338 bytes | 338.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0)
To github.com:hogehoge/hello-world.git
462a977..19f8f2f main -> main
hogehoge@mac hello-world %
既プッシュのコミットを取り消し(非推奨)
この操作は他の人がそのブランチの変更を取り込んでいた場合、問題を引き起こす可能性があるため推奨しません。
- 現在のブランチの履歴を確認し、戻したいコミットのIDを見つける
git log --oneline
- 指定したコミットにHEADをリセットする(ここではHEADから1つ前のコミットを指定)
git reset --hard HEAD~1
- 強制的にプッシュしてリモートの履歴を上書きする
git push origin HEAD --force
利用に当たっての注意点
GitHubを安全かつ効率的に利用するためには、いくつかの注意点とベストプラクティスがあります。
特にセキュリティに関しては、常に意識しておく必要があります。
- 多要素認証 (MFA) の有効化:
- 説明: パスワードだけでなく、スマートフォンアプリなどを使った追加の認証を必須にすることで、不正アクセスを強力に防ぐ。
- 例: パスワードが漏洩しても、MFAが有効であれば攻撃者はログインできない。
- 強力なパスワードの使用:
- 説明: 推測されにくい、長く複雑なパスワードを設定し、他のサービスと同じパスワードを使い回さないようにする。
- 例:
password123
のような簡単なパスワードは避け、@gH7!kLp9$qR2
のようなランダムな文字列を使用する。
- SSHキーとPAT (Personal Access Token) の定期的なローテーション:
- 説明: SSHキーやPATは認証情報として使用されるため、定期的に更新することで、万が一漏洩した場合のリスクを軽減する。
- 例: 3ヶ月に一度、PATを再生成し、古いものは削除する。
- 不要なアプリケーションのレビューと削除:
- 説明: GitHub MarketplaceからインストールしたアプリケーションやOAuthアプリのアクセス権限を定期的に見直し、不要なものは削除する。
- 例: 過去に連携したアプリが不要になったら、GitHubの設定からアクセス権限を取り消す。
- 機密情報のコミット禁止:
- 説明: APIキー、認証情報、パスワードなどの機密情報をコードに直接ハードコードしたり、リポジトリにコミットしたりすることは絶対に避ける。
- 例:
config.js
にAPI_KEY = "your_secret_key"
と直接書き込むのではなく、環境変数やGitHub Actionsのシークレット機能を使用する。
他のサービスとの比較
GitHubはバージョン管理と共同開発のための主要なプラットフォームですが、他にも類似のサービスが存在します。
ここでは、代表的なサービスであるGitLabとBitbucketとGithub比較してみます。
- GitLab:
- 強み: 開発から運用、セキュリティまでソフトウェア開発ライフサイクル全体をカバーする「オールインワンDevOpsプラットフォーム」を目指しています。ビルトインのCI/CDパイプラインが非常に強力で、セキュリティ機能も充実しています。セルフホスティングオプションが充実している点も特徴です。
- 対象: エンドツーエンドのDevOpsプロセスを重視する企業、セキュリティ要件の高いプロジェクト、セルフホスティングを希望するチームに適しています。
- Bitbucket:
- 強み: Atlassian社が提供するサービスであり、同社の他の製品(Jira、Trello、Confluenceなど)との連携が最大の強みです。小規模チーム(無料プランで最大5ユーザー)に対して無制限のプライベートリポジトリを提供しており、プライベートなコードベースを扱うプロフェッショナルチームに人気があります。
- 対象: Atlassian製品をすでに利用している企業や、プライベートリポジトリを多用するプロフェッショナルチームに特に適しています。
特徴/プラットフォーム | GitHub | GitLab | Bitbucket |
---|---|---|---|
主なターゲット | オープンソース、大規模コミュニティ、個人開発者、コラボレーション | DevOps、エンドツーエンドのSDLC、セキュリティ、エンタープライズ、セルフホスティング | プロフェッショナルチーム、プライベートリポジトリ、Atlassianエコシステム |
CI/CD | GitHub Actions | GitLab CI | Bitbucket Pipelines |
プライベートリポジトリ | 無料プランで無制限 | 無料プランで無制限 (ユーザー数制限なし) | 無料プランで小規模チーム (5ユーザーまで) は無制限 |
セキュリティ | アプリケーションセキュリティ機能 | DevSecOpsに重点、ビルトインのセキュリティスキャン | 2FA、IPホワイトリストなどのセキュリティ機能 |
コードレビュー | Pull Request | Merge Request | Pull Request |
インテグレーション | Slack, Jiraなど | 豊富 | Jenkinsなど |
参考情報
まとめ
本記事では、macOS Sequoia を利用する初心者の方に向けて、GitHub のアカウント作成から基本的な操作、そして安全な利用方法までを詳細に解説しました。
GitHub は、個人のプロジェクト管理から大規模なチーム開発、さらにはオープンソースコミュニティへの貢献まで、幅広い用途で活用できる強力なツールです。
本ガイドで紹介した手順と注意点を参考に、ぜひGitHubの世界に飛び込んでみてください!
最初は戸惑うこともあるかもしれませんが、実際に手を動かし、様々な機能を試していくことで、GitHub の便利さと奥深さを実感できるはずです。安全な利用を心がけながら、あなたの開発ライフをより豊かにするために GitHub を活用していきましょう。
あなたのMacを快適な開発環境にしましょう!!