Git インフラ

【完全解説】GitとGitHubについて

2025年6月7日


はじめに

最近はインフラ基盤もコード管理する機会が増え、そのコードを管理するにあたりGitを利用する機会が増えました。これを機にGitについて基本的な内容をまとめようと思います。

本ブログはあくまでGitの個人利用に焦点をあてており、チーム開発向けではございませんのでご注意ください。

本ブログは以下のような方におすすめです。

  • Gitって何ぞや?と感じた方
  • Gitの仕組みを知りたい方
  • git addやgit commit、git pushなどGitの基本的なコマンドを学びたい方

今回私は、以下のUdemyの講座でGitを学びました。1時間ほどでGitの基本操作をマスターでき、且つ無料のため、Git初心者の方にはめちゃおすすめです!

https://www.udemy.com/course/intro_git

多彩な講座から自分に合った講座を探そう!

それではGitの世界にいってらっしゃい!

Gitとは?

一言で言うとバージョン管理システムであり、「誰が」、「いつ」、「どのファイルの何を」、「何のために」変更したか記録を残すことができるソフトウェアです。

ポイント

  • 変更履歴を順々に記録する
  • 記録する際は、メッセージを付ける

GitHubとは?

Gitリポジトリ(コード)のホスティングサービス。(ソーシャルコーディングの場)

特徴

  • プルリクエスト(自分の変更を他の人にレビューしてもらい、共有リポジトリに取り込んでもらうためのリクエスト(申請))によるコラボレーション
  • 他チームのソフトウェアが見える

世界中の人たちが閲覧可能であり、開発に参加したりフィードバックを受けることができる。

また非公開で進めたい場合には、Bitbucketというツールがあります。使い方はGitHubとほぼ変わりません。

基本的なワークフロー

ポイント

ステージングエリアは、ローカルリポジトリにあげる前の控え室のイメージです。

ポイント

2021年8月13日以降、ローカルリポジトリからリモートリポジトリ(GitHub)へのHTTPS経由のパスワード認証が使えなくなりました。ネットで情報を見る限り代替案として、SSH接続への切り替えが推奨されてましたので、以下に手順を記します。

  1. SSH鍵の作成
  • ssh-keygen -t ed25529 -C "メールアドレス"

上記コマンドを実行することで、秘密鍵と公開鍵が生成されます。

~/.ssh/id_ed25519(秘密鍵)※誤って公開しないよう取り扱いには注意してください
~/.ssh/id_ed25519.pub(公開鍵)

またコマンドの補足もしておきます。

"ssh-keygen"はSSH鍵ペアを生成するコマンド、"-t"は鍵の種類を指定するコマンド、"-C"はコメント欄に表示するテキストを指定するコマンド(GitHubでは、識別用にメールアドレスを使う)です。

  1. 公開鍵をGitHubに登録

GitHub の「Settings > SSH and GPG keys」より追加します。

  1. リモートURLをSSHに変更
  • git remote set-url origin <メールアドレス>:<ユーザ名>/<リポジトリ名>

  1. 再度push
  • git push -u origin main

基本的なコマンド

  • git init:ローカルリポジトリの新規作成

".git"ディレクトリという隠しフォルダが作成される。ここでバージョン管理が行われる。

  • git status:gitリポジトリの状況を確認するコマンド(最新のコミットファイルからの変更を確認するコマンド)
  • 赤文字:addされていないもの
  • 緑文字:addされたもの
  • git add:ワークングディレクトリ(ローカル)の変更をステージングエリアに追加するコマンド

"git add ."とすることで、すべてのファイルを指定することができる。

  • git commit:変更にメッセージを付けてリポジトリに記録できる(他の人が「何をどうして変更したのか?」が分かるようにメッセージを付ける)

「-vオプション」は、差分を確認する

  • git log:commitの履歴を振り返ることができる
  • git rm:Git管理下のファイルを削除するコマンド(ワーキングディレクトリのファイルもステージングエリアのファイルも)

git rm -r <ディレクトリ名>:ディレクトリも削除

git rm --cache <ファイル名>:Git上のファイルは削除(ワーキングディレクトリ内のファイルは残る)

  • git diff:ファイルの変更差分を表示するコマンド(ワーキングディレクトリのファイルとステージングエリア)
  • git diff HEAD:ファイルの変更差分を表示するコマンド(ステージングエリアとローカルリポジトリ)
  • git remote add origin <GitHubリポジトリのURL>:共有リポジトリ(リモートリポジトリ ※今回でいうGitHub)をoriginという名前で指定

originはエイリアス(別名)であり、Gitの世界ではリモートリポジトリは基本originと命名されることが多い

  • git push origin master:originというリモートリポジトリへmasterブランチをpushする

ブランチとは、変更作業の「別ライン」を安全に進めるための機能です。

<例>

master ブランチ:本番用コード

feature/login ブランチ:ログイン機能の開発用

  • git reset HEAD <ファイル名>:Git上でファイルの復元
  • git checkout <ファイル名>:Git上でもワーキングディレクトリ上でもどちらでも復元

おまけ(.gitignore)

.gitignoreファイルに指定することで、ファイルをGitの管理から外すことができる

  • 自動生成されるファイルやパスワードが記載されたファイルなどを対象とする
  • 「#」から始まる行はコメントアウトされる
  • 指定方法
    • ファイルを直接指定(index.html)
    • ルートディレクトリを指定(/root.html)
    • ディレクトリ以下を除外(dir/)

関連記事

GitHub Actionsについてまとめた記事です。

GitHub CodeSpacesについてまとめた記事です。

-Git, インフラ