こんにちは、Tech Samuraiです!
前回の記事「Git実践ワークフロー解説」では、日々の開発の流れを学びました。今回は、そのワークフローをさらに洗練させ、プロフェッショナルなレベルへと引き上げるための、2つの重要なテクニックを探検します。
.gitignore
: プロジェクトに不要なファイルをGitの管理から除外し、リポジトリを常にクリーンに保つ「結界」。git rebase
: マージコミットを作らず、コミット履歴を一本の美しい線のように整える「歴史の編集術」。
これらの技をマスターすれば、あなたのGitリポジトリはより専門的で、誰にとっても分かりやすいものになります!
🤫 `.gitignore` で不要なファイルをアップロードしない設定
GitHubにコードをプッシュする際、ソースコードなど必要なファイルだけをアップロードするのが理想です。個人の環境設定ファイルや、自動生成される一時ファイルを含めるべきではありません。.gitignore
は、Gitに「このファイルやフォルダは追跡しないでください」と教えるための、シンプルな設定ファイルです。
無視すべきファイルの例
- OSが自動生成するファイル:
.DS_Store
(macOS),Thumbs.db
(Windows) - パスワードやAPIキーなどの機密情報:
.env
,credentials.json
- ライブラリや依存パッケージ:
node_modules/
, `venv/` (これらは設定ファイルから再インストールできるため) - ビルド成果物:
dist/
, `build/` - ログファイルや一時ファイル:
*.log
, `tmp/`
使い方
- ファイルを作成する: プロジェクトのルートディレクトリ(
.git
フォルダがある場所)に、.gitignore
という名前のファイルを作成します。touch .gitignore
- 無視したいルールを記述する: 作成したファイルに、無視したいファイル名やパターンを1行に1つずつ記述します。
# OS generated files .DS_Store Thumbs.db # IDE settings .vscode/ # Python venv .venv/ __pycache__/ # Log files *.log # Environment variables (IMPORTANT!) .env
.gitignore`
自体をコミットする: この設定ファイルもプロジェクトの重要な一部なので、忘れずにコミットします。git add .gitignore git commit -m "Add .gitignore file"
これで、以降のgit add .
では、.gitignore
に記述されたファイルが自動的に無視されるようになります。
📌 もし間違えてコミットしてしまったら?
すでに追跡対象のファイルを後から.gitignore`
に追加しても、無視されません。その場合は、一度Gitの追跡対象から外す(キャッシュを削除する)必要があります。
# ファイルは手元に残したまま、Gitの追跡だけを解除
git rm --cached .env
# この変更をコミット
git commit -m "Stop tracking .env file"
🌿 `git rebase` でコミット履歴を綺麗にする
git merge`
が正直に「ここで別の作業が合流しました」と記録(マージコミット)を残すのに対し、git rebase`
は「まるで最初からこの順番で作業していたかのように」履歴を綺麗に並べ替えます。
例えるなら… merge`
が「高速道路の合流地点」だとすれば、rebase`
は「自分の車を一旦分解し、本線の最新車の後ろで**再組立(Re-base)**する」ようなイメージです。結果として、高速道路は合流地点のない一本道になり、流れが非常に見やすくなります。
基本的な使い方 (作業ブランチを `main` に rebase する)
- 統合先のブランチを最新にする:
git switch main git pull origin main
- 作業ブランチに戻る:
git switch feature/my-new-feature
rebase`
を実行する:git rebase main
これで、あなたの作業ブランチは、main
の最新のコミットの先頭から枝分かれしたかのように、履歴が書き換えられます。
💥 コンフリクト(競合)が発生した場合
rebase`
中にコンフリクトが発生すると、処理が一時停止します。
- ファイルを修正: エディタでコンフリクトしたファイルを開き、手動で修正します。
- 修正を `add`:
git add <ファイル名>`
で修正をステージングします。 rebase`
を再開: 以下のコマンドで続行します。(commit
ではない点に注意!)git rebase --continue
もし途中でパニックになったらgit rebase --abort
でrebase
を始める前の状態に安全に戻せます。
⚠️ `rebase`の黄金律(非常に重要!)
絶対に、他の人も使っている共有ブランチ(
main`
やdevelop`
など)では `rebase` を実行しないでください。**
rebase`
はコミット履歴を書き換える強力な操作です。共有ブランチの歴史を書き換えてしまうと、他のチームメンバーのリポジトリと深刻な矛盾が生じ、大きな混乱を引き起こします。rebase`
は、**まだ自分しか使っていないローカルの作業ブランチ**を綺麗にする目的で使いましょう。
まとめ
.gitignore`
でリポジトリの純度を保ち、git rebase`
でコミット履歴の可読性を高める。この2つのテクニックは、あなたのGitスキルを一段階上のレベルへと引き上げてくれます。特に`rebase`は強力な分、最初は少し怖いかもしれませんが、ローカルのブランチで練習すれば、すぐにその便利さを実感できるはずです。美しい履歴は、未来のあなた自身と、チームメンバーへの最高の贈り物です。
コメント