gitのインポートエクスポート
1. チームAの作業: リポジトリ全体をバンドルファイルにする
ステップ1: リポジトリ全体をバンドル
チームAで全ての履歴を含むバンドルファイルを作成します。
xxx.bundleにした場合、xxxがリポジトリ名となる。
git bundle create full_repo.bundle --all
ステップ2: バンドルファイルを送信
作成した full_repo.bundle
をチームBにメールなどで送信します。
2. チームBの作業: バンドルファイルから新しいリポジトリを作成
git clone full_repo.bundle -b main
main
: チームAのメインブランチです。バンドル内のブランチ名を確認するには以下を実行します:git bundle list-heads full_repo.bundle
ステップ2: 履歴とブランチを確認
cd full_repogit log --oneline
すべてのブランチを確認
git branch -a
3. チームBでの開発開始
チームBは、この新しく作成されたリポジトリを基にして開発を開始できます。以降は、チームAとチームBでバンドルファイルを使って差分共有することが可能です。
例: チームAが新しい変更を加えた場合
git bundle create update.bundle <前回共有したコミットID>..HEAD
チームBは差分を取り込みます。
git switch <ブランチ名>
※前回ブランチを作成したときにベースとしたブランチ(ex master)
git fetch update.bundle maingit merge FETCH_HEAD
git pull <バンドルファイル名>
①バンドルファイルの作成
-
main
ブランチをバンドル化 git clone リポジトリ名.bundle -b main
-前回送ったコミット以降の変更だけをバンドル化する場合
git bundle create update.bundle <前回のコミットID>..HEAD
②バンドルファイルのとりこみ
-新しいリポジトリとしてクローン
git clone repo.bundle -b main
-適用する前に、バンドルの中身を確認
git bundle list-heads update.bundle
③
-前回共有したコミットにタグをつけておくと、次回バンドル作成が簡単になります。
git tag last-shared d4e5f6g
git bundle create update.bundle last-shared..HEAD