🤩

Git入門

に公開

Gitを教える際によくする説明のまとめ

バージョン管理システム VCS

代表的なものは GitSubversion(SVN) などがある。
GitHubGitlabAWS CodeCommit は GitをWebサービスに拡張したもの

こんなケースないですか?

どれが最新資材か、誰が更新したのか、何を更新したのか…
no-ver

バージョン管理が解決する課題 (メリット)

誰がいつ、どのように変更したかがわかる。
lens

何を変更したかも差分で見ることができる
※赤い行が変更前、緑の行が変更後 2025/06/21 2025/06/28 進行中 に変わっている。
diff

例えるなら

バージョン管理は、ゲームのセーブとロードのようなもの! (not オートセーブ)
irasuto-ya

VCS共通で覚えたほうがいい用語

名詞

リポジトリ (repository)

  • ソースコードの保存先
  • 「例えるなら」でいうと、ゲームソフト本体

ブランチ (branch)

  • リポジトリのソースコードを並行して管理できる機能のこと
  • 本流のブランチを mainmaster と名付けることが多い
  • 「例えるなら」でいうと、進行中のストーリーを保存し別途分岐ルートを進めるようなイメージ

操作系の用語

コミット (commit)

  • ソースコードをリポジトリへ保存すること

チェックアウト (checkout)

  • 特定の状態のソースコードをリポジトリからダウンロードすること
  • 「例えるなら」でいうと、セーブスロットを選択し、ロードする

Git

分散型バージョン管理システムの代表的なツール
※SVNは集中型。気になる人はググってください。

Gitの構成・特徴

リモートリポジトリとローカルリポジトリに分かれている

リモートのコードベースにはアクセスできない状況ですが、各開発者のローカル環境には散在しています。
それらを一度 GitHub Enterprise Cloud に集約し、ローカル環境にリポジトリを保持している開発者間で連携をとりながら、最新のリビジョンを特定する といった作業を行いました
https://dwango.github.io/articles/2025-06_docs_of_recovering_from_a_cyberattack/

git-arch

gitignore

バージョン管理したくないファイルを管理するファイル
Gitのルートディレクトリに .gitignore ファイルを作成すればOK

ライブラリごとのテンプレートはgitignore.io から作成すると便利

https://www.toptal.com/developers/gitignore

Gitコマンドのユースケース

安心してもらうために

Gitは基本的にPushをしなければ他のだれかに迷惑をかけることはありません!
逆に言うとPush時は細心の注意を払って実行しましょう。

CASE: ファイルをローカルにダウンロードする

リポジトリから初めてダウンロードする場合

  1. git clone リポジトリ名 : Gitのリモートリポジトリをローカルにダウンロードする
  2. git branch : 今のブランチが適切かを確認する
    リモートリポジトリ名はGitHubの場合、 Clone から確認できる
    git-clone

過去にダウンロード済みの場合

  1. git branch : 今の作業ブランチが適切かを確認する
  2. git stash : ローカルの変更を一時退避する (後で戻す)
  3. git pull : リモートリポジトリの変更をローカルに取り込む
  4. git stash pop : 一時退避した変更を復旧する

CASE: ファイルをリモートリポジトリにアップロードする

Step1. コミットの前準備

  1. git branch : 今の作業ブランチが適切かを確認する
  2. git stash : ローカルの変更を一時退避する (後で戻す)
  3. git pull : リモートリポジトリの変更をローカルに取り込む
  4. git stash pop : 一時退避した変更を復旧する
    • 競合が発生したら適宜調整する

Step2. ローカルリポジトリへコミットを実行する

  1. git add <ファイル名> : 指定のファイルをコミット対象に追加する
  2. git commit -m <メッセージ> : git add したファイルをローカルリポジトリにコミットする

Step3. ローカルリポジトリの変更分をリモートリポジトリに反映する

  1. git push -u origin <ブランチ名> : リモートリポジトリの指定したブランチにコミットを反映する
    • ※直近で同じブランチにpushする場合は git push だけでOK

CASE: Gitクライアントの初回設定

Step1. クライアントをダウンロードする

https://git-scm.com/downloads

  1. インストールできているかを確認する
    Windows PowerShellで Get-Command git を実行しエラー無しならOK
Get-Command git

CommandType     Name        Version    Source
-----------     ----        -------    ------
Application     git.exe     2.30.1.1   C:\Program Files\Git\cmd\git.exe

Linuxで which git を実行し何か出力できたらOK

$ which git
/usr/bin/git

Step2. 初回設定を実施する
Windows or Linux共通

git config --global user.name '名前'
git config --global user.email 'メールアドレス'

おすすめのカスタマイズ設定 (実行しなくてもOK)

git config --global core.autocrlf input
git config --global core.ignorecase false
git config --global core.longpaths true
git config --global core.quotepath false
git config --global push.default simple
git config --global fetch.prune true
git config --global init.defaultBranch main

Discussion