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 を学ぶのがベストです!