Gitを学習する際に選ばなければならない選択肢はいくつかあります。目的や環境によって異なりますが、主な選択肢をカテゴリごとに整理しました。
① Gitのインストール方法
- 公式サイトからダウンロード(Git公式)
-
パッケージマネージャーを利用
- macOS:
brew install git
- Linux:
sudo apt install git
/sudo dnf install git
- Windows: Chocolatey (
choco install git
) / Scoop (scoop install git
)
- macOS:
② 使用するGitの操作方法
-
コマンドライン(CLI)
-
git init
,git add
,git commit
,git push
などを手動で入力 - メリット: 高い柔軟性、トラブルシューティングしやすい
- デメリット: 最初は学習コストが高い
-
-
GUIクライアント
- GitKraken, Sourcetree, GitHub Desktop など
- メリット: 直感的に操作できる
- デメリット: コマンドの知識が身につきにくい
-
IDE統合
- VS Code, IntelliJ, Eclipse などに内蔵されたGit機能を利用
-
git
コマンドを直接打たずにバージョン管理可能
③ Gitのホスティングサービス
-
GitHub
- 世界最大のGitホスティングサービス、オープンソースに強い
-
GitLab
- 自社でホスティング可能なCI/CDに強いプラットフォーム
-
Bitbucket
- Atlassian製、JIRAとの連携が強力
-
自社サーバー(オンプレミス)
-
git init --bare
を使い、SSH経由で管理
-
④ リポジトリの運用戦略(ブランチ戦略)
-
Git Flow
-
main
(またはmaster
)とdevelop
を中心にfeature
,release
,hotfix
ブランチを管理
-
-
GitHub Flow
-
main
ブランチにfeature
ブランチを作成し、プルリクエスト(PR)でマージ
-
-
GitLab Flow
- 環境ごと(開発、ステージング、本番)にブランチを用意
-
Trunk Based Development
-
main
ブランチに直接マージし、短期間でデプロイ
-
⑤ マージ戦略
-
Merge commit (
git merge
)- ブランチの変更をコミットごとに残して統合
-
Fast-forward merge
- 履歴を直線的に保つ(
git merge --ff-only
)
- 履歴を直線的に保つ(
-
Squash and merge
- 複数のコミットを1つにまとめてマージ(
git merge --squash
)
- 複数のコミットを1つにまとめてマージ(
-
Rebase (
git rebase
)- ブランチの履歴を整理しながら統合
⑥ コミットメッセージのルール
-
自由形式
- 適当に
fix bug
などを書く
- 適当に
-
コミットメッセージ規約を採用
-
Conventional Commits(
feat: add login button
など) -
Gitmoji(
✨ feat: add login button
など)
-
Conventional Commits(
⑦ リモートリポジトリとの連携方法
-
HTTPS
git clone https://github.com/user/repo.git
- 簡単だが、毎回認証が必要
-
SSH
git clone git@github.com:user/repo.git
- 事前にSSHキーを設定する必要があるが、一度設定すれば便利
-
Git Credential Manager(GCM)
- 認証情報を保存し、HTTPSでも再認証不要にする
⑧ 変更履歴の管理方法
-
コミットをやり直す
git commit --amend
-
履歴を整理する
git rebase -i
-
変更を取り消す
-
git reset --hard
(完全削除) -
git revert
(取り消しコミットを作成)
-
-
特定のファイルだけ戻す
git checkout <commit_hash> -- file.txt
⑨ トラブルシューティング方法
-
ブランチを間違えて作業した
-
git stash
で変更を一時退避し、正しいブランチに移動
-
-
間違えて
git push
した-
git push --force
(注意!)
-
-
過去の状態に戻りたい
-
git reflog
で過去の状態を確認し、git reset --hard
で戻る
-
-
コンフリクトが発生
-
git merge
の際に<<<<<< HEAD
の部分を手動で修正し、再コミット
-
⑩ CI/CDとの連携
-
GitHub Actions
- GitHub上でCI/CDを構築
-
GitLab CI/CD
-
.gitlab-ci.yml
を使ってパイプラインを設定
-
-
Jenkins, CircleCI, Travis CI
- 外部のCIツールを利用
まとめ
Gitを学習する際に選ぶべき選択肢はたくさんありますが、最初は以下の流れを意識すると良いでしょう:
- CLI or GUI を選ぶ(CLI推奨)
- Gitのホスティングサービス を決める(GitHubが一般的)
- ブランチ運用ルール を選ぶ(GitHub Flowがおすすめ)
- マージ戦略 を理解する(Fast-forward + Squash and merge)
-
変更履歴の管理方法 を学ぶ(
commit --amend
,rebase
,reset
) - コンフリクト解決 を実践する
- CI/CD連携 まで学ぶと実務で活用しやすい
どの選択肢を選ぶかはプロジェクトやチームの方針によりますが、最初は 基本的なGit操作 + GitHub を学ぶのがベストです!