【Git中級編】gitignoreの設定とrebase入門!コミット履歴を綺麗に保つプロの技

ALL

こんにちは、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/`

使い方

  1. ファイルを作成する: プロジェクトのルートディレクトリ(.gitフォルダがある場所)に、.gitignoreという名前のファイルを作成します。 touch .gitignore
  2. 無視したいルールを記述する: 作成したファイルに、無視したいファイル名やパターンを1行に1つずつ記述します。 # OS generated files .DS_Store Thumbs.db # IDE settings .vscode/ # Python venv .venv/ __pycache__/ # Log files *.log # Environment variables (IMPORTANT!) .env
  3. .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 する)

  1. 統合先のブランチを最新にする: git switch main git pull origin main
  2. 作業ブランチに戻る: git switch feature/my-new-feature
  3. rebase`を実行する: git rebase main これで、あなたの作業ブランチは、mainの最新のコミットの先頭から枝分かれしたかのように、履歴が書き換えられます。

💥 コンフリクト(競合)が発生した場合

rebase`中にコンフリクトが発生すると、処理が一時停止します。

  1. ファイルを修正: エディタでコンフリクトしたファイルを開き、手動で修正します。
  2. 修正を `add`: git add <ファイル名>`で修正をステージングします。
  3. rebase`を再開: 以下のコマンドで続行します。(commitではない点に注意!git rebase --continue もし途中でパニックになったら git rebase --abortrebaseを始める前の状態に安全に戻せます。

⚠️ `rebase`の黄金律(非常に重要!)

絶対に、他の人も使っている共有ブランチ(main`develop`など)では `rebase` を実行しないでください。**

rebase`はコミット履歴を書き換える強力な操作です。共有ブランチの歴史を書き換えてしまうと、他のチームメンバーのリポジトリと深刻な矛盾が生じ、大きな混乱を引き起こします。rebase`は、**まだ自分しか使っていないローカルの作業ブランチ**を綺麗にする目的で使いましょう。


まとめ

.gitignore`でリポジトリの純度を保ち、git rebase`でコミット履歴の可読性を高める。この2つのテクニックは、あなたのGitスキルを一段階上のレベルへと引き上げてくれます。特に`rebase`は強力な分、最初は少し怖いかもしれませんが、ローカルのブランチで練習すれば、すぐにその便利さを実感できるはずです。美しい履歴は、未来のあなた自身と、チームメンバーへの最高の贈り物です。

【Python開発】RyeプロジェクトにおけるGitの初めの一歩(初期設定と最初のコミット)

【Git中級編】もっと便利に!日常操作を効率化するGitコマンドオプション集

コメント

タイトルとURLをコピーしました