コントリビューター向けGitワークフローガイド

CONTRIBUTING.mdにGitワークフローを文書化。fork-and-clone、ブランチ作成、rebase vs merge、フォークの同期維持、コンフリクト解決をカバー。

Processes

詳細な説明

コントリビューター向けGitワークフロー

多くのコントリビューター、特に初心者は、fork-and-PRワークフローに苦労します。明確なgitワークフローセクションは、よくある間違いを防ぎます。

ForkとClone

# 1. GitHubでリポジトリをfork
# 2. フォークをクローン
git clone https://github.com/YOUR_USERNAME/project.git
cd project

# 3. upstreamリモートを追加
git remote add upstream https://github.com/ORIGINAL_ORG/project.git

ブランチの作成

# 常に最新のmainからブランチ
git checkout main
git pull upstream main
git checkout -b feature/my-new-feature

フォークの同期維持

git checkout main
git fetch upstream
git merge upstream/main
git push origin main

コミットの作成

git add src/components/NewFeature.tsx
git add src/tests/NewFeature.test.tsx
git commit -m "feat: add new feature component"

PR提出前

# コンフリクトを避けるために最新のmainにリベース
git checkout main
git pull upstream main
git checkout feature/my-new-feature
git rebase main

# すべてのチェックを実行
npm run lint
npm test
npm run build

コンフリクトの解決

# リベース中にコンフリクトが発生した場合:
# 1. コンフリクトしたファイルを修正
# 2. 解決したファイルをステージ
git add <resolved-file>
# 3. リベースを続行
git rebase --continue

変更のプッシュ

# 初回プッシュ
git push origin feature/my-new-feature

# リベース後(自分のフォークにのみforce push)
git push --force-with-lease origin feature/my-new-feature

よくある間違い

  • フィーチャーブランチではなくmainに変更を加える
  • 作業開始前にupstreamと同期するのを忘れる
  • --force-with-leaseの代わりにgit push --forceを使用する
  • 生成されたファイルや依存関係をコミットする

ユースケース

コントリビューターがマージコンフリクト、古いブランチ、または乱雑なコミット履歴でPRを頻繁に提出するプロジェクトで、メンテナーが期待されるgitワークフローの明確なリファレンスを提供したい場合。

試してみる — CONTRIBUTING.md Generator

フルツールを開く