GitHub でフォークされたリポジトリを同期する方法

GitHub でフォークされたリポジトリを同期する方法
GitHub でフォークされたリポジトリを同期する方法

フォークを最新の状態に保つ:

GitHub でリポジトリをフォークすることは、開発者が変更を加えたりプル リクエストを送信したりすることでプロジェクトに貢献できるようにする一般的な方法です。ただし、元のリポジトリの最新の変更を反映してフォークを常に最新の状態に保つのは少し難しい場合があります。

このガイドでは、フォークされたリポジトリを元のリポジトリと同期するプロセスについて説明します。経験豊富な開発者であっても、初心者であっても、このステップバイステップのチュートリアルは、フォークが最新のコミットで最新の状態に保たれるようにするのに役立ちます。

指示 説明
git remote add upstream <URL> 元のリポジトリを「アップストリーム」という名前のリモートとして追加し、ソース リポジトリからの変更を追跡します。
git fetch upstream 別のリポジトリ (この場合は上流のリモート) からオブジェクトと参照をダウンロードします。
git merge upstream/main 上流のメイン ブランチからの変更を現在のブランチに統合します。
git push origin main ローカルのメイン ブランチからのコミットでリモート リポジトリを更新します。
git checkout main ローカル リポジトリのメイン ブランチに切り替えます。
git remote -v Git がリモート リポジトリ用に保存した URL を表示します。

Git 同期プロセスを理解する

上記で提供されるスクリプトは、ユーザーがフォークされた GitHub リポジトリを元のソース リポジトリと同期できるように設計されています。最初のスクリプトでは、Git コマンド ライン インターフェイス (CLI) を使用します。まずフォークされたリポジトリに移動し、元のリポジトリを という名前のリモートとして追加します。 upstream。これにより、ローカル git インスタンスが元のソース リポジトリからの変更を追跡できるようになります。コマンド git fetch upstream 最新の変更をローカル ブランチにマージせずに、上流のリポジトリから取得します。メインブランチに切り替えることで、 git checkout main、正しいブランチで作業していることを確認します。

次に、コマンド git merge upstream/main 上流リポジトリから取得した変更をローカルのメイン ブランチにマージします。これは、元のプロジェクトからの最新のコミットでフォークを最新の状態に保つために重要です。最後に、コマンド git push origin main GitHub 上のフォークされたリポジトリを、新しくマージされた変更で更新します。オプションの手順には、このプロセス中に発生する可能性のあるマージ競合の解決が含まれます。 2 番目のスクリプトは、GitHub デスクトップ アプリケーションを使用して同様のワークフローを提供し、コマンド ラインよりもグラフィカル インターフェイスを好むユーザーにとってアクセスしやすくしています。

フォークされたリポジトリをアップストリームの変更と同期する

Git コマンド ライン インターフェイス (CLI) の使用

# Step 1: Navigate to your forked repository
cd path/to/your/forked-repo

# Step 2: Add the original repository as an upstream remote
git remote add upstream https://github.com/original-owner/original-repo.git

# Step 3: Fetch the latest changes from the upstream repository
git fetch upstream

# Step 4: Check out your main branch
git checkout main

# Step 5: Merge the changes from the upstream/main into your local main branch
git merge upstream/main

# Step 6: Push the updated main branch to your fork on GitHub
git push origin main

# Optional: If you encounter conflicts, resolve them before pushing
# and commit the resolved changes.

GitHub デスクトップを使用したフォークの更新

GitHub デスクトップ アプリケーションの使用

# Step 1: Open GitHub Desktop and go to your forked repository

# Step 2: Click on the "Repository" menu and select "Repository Settings..."

# Step 3: In the "Remote" section, add the original repository URL as the upstream remote

# Step 4: Fetch the latest changes from the upstream repository
# by selecting "Fetch origin" and then "Fetch upstream"

# Step 5: Switch to your main branch if you are not already on it

# Step 6: Merge the changes from the upstream/main into your local main branch
# by selecting "Branch" and then "Merge into current branch..."

# Step 7: Push the updated main branch to your fork on GitHub
# by selecting "Push origin"

# Optional: Resolve any merge conflicts if they arise and commit the changes

フォークされたリポジトリを最新の状態に保つ: 追加の考慮事項

フォークされたリポジトリを維持するもう 1 つの重要な側面は、ブランチ管理の重要性を理解することです。多くの場合、開発者は別のブランチでさまざまな機能や修正に取り組んでいます。フォークを同期するときは、メイン ブランチを更新するだけでなく、上流の変更を他のアクティブなブランチにマージすることも考慮することが重要です。これは、後で競合を回避し、プロジェクトのすべての部分が最新の更新と一貫していることを保証するのに役立ちます。

さらに、タグとリリースを使用すると有益な場合があります。定期的にコミットにタグを付けてリリースを作成することで、プロジェクトの安定したバージョンを追跡できます。同期すると、どのバージョンが統合され、どのバージョンをまだ更新する必要があるかを識別しやすくなります。この方法は、複数の共同作業者がいる大規模なプロジェクトで特に役立ちます。

フォークされたリポジトリの同期に関するよくある質問

  1. 元のリポジトリをリモートとして追加するにはどうすればよいですか?
  2. コマンドを使用する git remote add upstream <URL> 元のリポジトリを追加します。
  3. どういうことですか git fetch upstream する?
  4. このコマンドは、最新の変更をマージせずに上流リポジトリからダウンロードします。
  5. メインブランチに切り替えるにはどうすればよいですか?
  6. コマンドを使用する git checkout main メインブランチに切り替えます。
  7. 目的は何ですか git merge upstream/main?
  8. このコマンドは、上流のメイン ブランチからの変更をローカルのメイン ブランチにマージします。
  9. GitHub 上のフォークされたリポジトリを更新するにはどうすればよいですか?
  10. 変更をマージした後、使用します git push origin main GitHub 上のフォークを更新します。
  11. GitHub Desktop を使用してフォークを同期できますか?
  12. はい、GitHub Desktop は、変更をフェッチ、マージ、プッシュするためのグラフィカル インターフェイスを提供します。
  13. マージ中に競合が発生した場合はどうなりますか?
  14. 競合を手動で解決し、解決された変更をコミットする必要があります。
  15. なぜタグとリリースを使用する必要があるのですか?
  16. タグとリリースは、安定したバージョンを追跡し、更新の管理を容易にするのに役立ちます。
  17. main 以外の他のブランチを更新する必要がありますか?
  18. はい、他のアクティブなブランチを更新すると、競合が回避され、一貫性が確保されます。

フォークの同期に関する最終的な考え方

フォークされたリポジトリと元のリポジトリの同期を維持することは、投稿の整合性と関連性を維持するために非常に重要です。定期的に変更をフェッチ、マージ、プッシュすることで、フォークが最新の開発状況に常に最新の状態に保たれます。 Git コマンド ライン インターフェイスや GitHub デスクトップなどのツールを利用すると、このプロセスが簡素化されます。さらに、マージ競合を迅速に解決したり、タグやリリースを使用したりするなどのベスト プラクティスを採用すると、ワークフローとコラボレーションの効率が大幅に向上します。