Git入門
Gitを教える際によくする説明のまとめ
バージョン管理システム VCS
代表的なものは Git
と Subversion(SVN)
などがある。
GitHub
、 Gitlab
、 AWS CodeCommit
は GitをWebサービスに拡張したもの
こんなケースないですか?
どれが最新資材か、誰が更新したのか、何を更新したのか…
バージョン管理が解決する課題 (メリット)
誰がいつ、どのように変更したかがわかる。
何を変更したかも差分で見ることができる
※赤い行が変更前、緑の行が変更後 2025/06/21 2025/06/28 進行中
に変わっている。
例えるなら
バージョン管理は、ゲームのセーブとロードのようなもの! (not オートセーブ)
VCS共通で覚えたほうがいい用語
名詞
リポジトリ (repository)
- ソースコードの保存先
- 「例えるなら」でいうと、ゲームソフト本体
ブランチ (branch)
- リポジトリのソースコードを並行して管理できる機能のこと
- 本流のブランチを
main
やmaster
と名付けることが多い - 「例えるなら」でいうと、進行中のストーリーを保存し別途分岐ルートを進めるようなイメージ
操作系の用語
コミット (commit)
- ソースコードをリポジトリへ保存すること
チェックアウト (checkout)
- 特定の状態のソースコードをリポジトリからダウンロードすること
- 「例えるなら」でいうと、セーブスロットを選択し、ロードする
Git
分散型バージョン管理システムの代表的なツール
※SVNは集中型。気になる人はググってください。
Gitの構成・特徴
リモートリポジトリとローカルリポジトリに分かれている
リモートのコードベースにはアクセスできない状況ですが、各開発者のローカル環境には散在しています。
それらを一度 GitHub Enterprise Cloud に集約し、ローカル環境にリポジトリを保持している開発者間で連携をとりながら、最新のリビジョンを特定する といった作業を行いました
https://dwango.github.io/articles/2025-06_docs_of_recovering_from_a_cyberattack/
gitignore
バージョン管理したくないファイルを管理するファイル
Gitのルートディレクトリに .gitignore
ファイルを作成すればOK
ライブラリごとのテンプレートはgitignore.io から作成すると便利
Gitコマンドのユースケース
安心してもらうために
Gitは基本的にPushをしなければ他のだれかに迷惑をかけることはありません!
逆に言うとPush時は細心の注意を払って実行しましょう。
CASE: ファイルをローカルにダウンロードする
リポジトリから初めてダウンロードする場合
-
git clone リポジトリ名
: Gitのリモートリポジトリをローカルにダウンロードする -
git branch
: 今のブランチが適切かを確認する
リモートリポジトリ名はGitHubの場合、Clone
から確認できる
過去にダウンロード済みの場合
-
git branch
: 今の作業ブランチが適切かを確認する -
git stash
: ローカルの変更を一時退避する (後で戻す) -
git pull
: リモートリポジトリの変更をローカルに取り込む -
git stash pop
: 一時退避した変更を復旧する
CASE: ファイルをリモートリポジトリにアップロードする
Step1. コミットの前準備
-
git branch
: 今の作業ブランチが適切かを確認する -
git stash
: ローカルの変更を一時退避する (後で戻す) -
git pull
: リモートリポジトリの変更をローカルに取り込む -
git stash pop
: 一時退避した変更を復旧する- 競合が発生したら適宜調整する
Step2. ローカルリポジトリへコミットを実行する
-
git add <ファイル名>
: 指定のファイルをコミット対象に追加する -
git commit -m <メッセージ>
: git add したファイルをローカルリポジトリにコミットする
Step3. ローカルリポジトリの変更分をリモートリポジトリに反映する
-
git push -u origin <ブランチ名>
: リモートリポジトリの指定したブランチにコミットを反映する- ※直近で同じブランチにpushする場合は
git push
だけでOK
- ※直近で同じブランチにpushする場合は
CASE: Gitクライアントの初回設定
Step1. クライアントをダウンロードする
- インストールできているかを確認する
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