Git マージリポジトリ
チームごとに別々のリポジトリを持つさまざまなチームメンバーとのプロジェクトに取り組んでいるときに、ある時点で、これらの別々のリポジトリをマスターリポジトリに結合して、単一のリポジトリを使用してすべての作業を展開したいという状況に直面します。
さまざまなリポジトリを 1つにマージするのに苦労し、その貴重なコミット履歴を保持することさえ難しいように思われますが、実際にはそうではありません。この記事では、個別のリポジトリを単一のマスターリポジトリにマージする方法について段階的に詳しく説明します。
Git でリポジトリをマージする手順
repo A
と repo B
の 3つのリポジトリがあり、次に A
と B
をマージする repo Z
があるとします。現在 repo Z
のディレクトリにあるもう 1つのものを想定します。ここで、これら 2つのリポジトリ A
と B
を Z
にマージします。
もう 1つ考えてみましょう。repo Z
はリポジトリのマスターブランチです。
- リモート URL を追加します
このステップでは、属性 -f
を指定してコマンド git remote add
を実行します。これにより、repo A
のリモコンが追加され、repo A
という名前が付けられます。
```bash
git remote add -f remote-A <repo-A-URL>
```
オプション -f
を使用すると、コマンド git fetch <name>
は、リモート情報が設定された直後に処理されます。
レポ B
については、上記と同じ手順に従います。
```bash
git remote add -f remote-B <repo-B-URL>
```
- ファイルとフォルダを組み合わせる
次のコマンドを使用して、repo A
ファイルを現在のブランチ(repo Z
)にマージします。
```bash
git merge remote-A/master --allow-unrelated-histories
```
ここでは、--allow-unrelated-histories
を追加して、Git が無関係の履歴をマージできるようにします。
次のコマンドを使用して、repo B
に対して同じプロセスが繰り返されます。
```bash
git merge remote-B/master --allow-unrelated-histories
```
上記のコマンドを実行した後に競合が発生した場合は、それらを解決してから、マージを正常にコミットします。
- コミット履歴を表示する
マージされたコミット履歴を表示するには、次のコマンド git log
を実行します。これは、さまざまなリポジトリのすべてのマージ履歴を表示するための最後のステップです。
```bash
git log
```
Abdul is a software engineer with an architect background and a passion for full-stack web development with eight years of professional experience in analysis, design, development, implementation, performance tuning, and implementation of business applications.
LinkedIn