Git マージリポジトリ

Abdul Jabbar 2022年8月23日
Git マージリポジトリ

チームごとに別々のリポジトリを持つさまざまなチームメンバーとのプロジェクトに取り組んでいるときに、ある時点で、これらの別々のリポジトリをマスターリポジトリに結合して、単一のリポジトリを使用してすべての作業を展開したいという状況に直面します。

さまざまなリポジトリを 1つにマージするのに苦労し、その貴重なコミット履歴を保持することさえ難しいように思われますが、実際にはそうではありません。この記事では、個別のリポジトリを単一のマスターリポジトリにマージする方法について段階的に詳しく説明します。

Git でリポジトリをマージする手順

repo Arepo B の 3つのリポジトリがあり、次に AB をマージする repo Z があるとします。現在 repo Z のディレクトリにあるもう 1つのものを想定します。ここで、これら 2つのリポジトリ ABZ にマージします。

もう 1つ考えてみましょう。repo Z はリポジトリのマスターブランチです。

  1. リモート 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>
```
  1. ファイルとフォルダを組み合わせる

次のコマンドを使用して、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
```

上記のコマンドを実行した後に競合が発生した場合は、それらを解決してから、マージを正常にコミットします。

  1. コミット履歴を表示する

マージされたコミット履歴を表示するには、次のコマンド git log を実行します。これは、さまざまなリポジトリのすべてのマージ履歴を表示するための最後のステップです。

```bash
git log
```
著者: Abdul Jabbar
Abdul Jabbar avatar Abdul Jabbar avatar

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

関連記事 - Git Merge