gitのインポートエクスポート

2025年02月11日 14:08

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_repo

git log --oneline


すべてのブランチを確認 

git branch -a  


3. チームBでの開発開始

チームBは、この新しく作成されたリポジトリを基にして開発を開始できます。以降は、チームAとチームBでバンドルファイルを使って差分共有することが可能です。 

例: チームAが新しい変更を加えた場合 

git bundle create update.bundle <前回共有したコミットID>..HEAD

                 git bundle create <バンドルファイル名> <送りたいブランチ名>...<ベースとするブランチ名>


チームBは差分を取り込みます。

git switch <ブランチ名>

     ※前回ブランチを作成したときにベースとしたブランチ(ex master)

git fetch update.bundle main

git 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