git移行リポジトリ

要件: もともとサーバー A の git に配置されていたプロジェクトがあり、現在はサーバー B に移行する必要があり、すべての送信レコードを保持する必要があります。両方のサーバーはローカルにインストールされた gitlab を使用します

2 つのサーバーに含まれるメンバーが異なります。過去につながる可能性があります。

テストプロセス:
方法 1:
gitlab インターフェイスに入り、新しいプロジェクトを選択し、プロジェクトのインポートを選択します。インポートするには
ここに画像の説明を挿入
2 つの方法があります。1 つは URL によるリポジトリで、対応する権限が必要です。通信するには 2 つのサーバーが必要です。プロジェクトの古い git を入力します。サーバー上の git アドレスで十分です。
もう 1 つは、古いサーバーからプロジェクトをエクスポートし、GitLib エクスポートを使用してプロジェクト名を入力し、エクスポートされた圧縮パッケージを選択する方法です。
エクスポートするにはどうすればよいですか?
gitlab エクスポートここに画像の説明を挿入
ここに画像の説明を挿入
エクスポート ボタンをクリックすると、電子メールを受信するように求められます。メールボックスを設定していない場合、またはローカル エリア ネットワークが基本的に電子メールをリリースしている場合は、エクスポートが完了した後、この時点でページを更新してください。直接ダウンロードするためのダウンロード ボタンが表示されます。プロジェクトが比較的大きく、いつインポートされるかわからない場合は、後で更新できます。
ここに画像の説明を挿入
方法 2:
コマンド ラインを使用します。
(1) 元のアドレスからベア リポジトリのクローンを作成します。

git clone --bare git://aaa.com/username/project.git

上記のコマンドの git://aaa.com/username/project.git は、プロジェクトの古い git アドレスを参照します。

–bare によって作成されたクローン リポジトリにはワークスペースが含まれておらず、直接リポジトリのコンテンツです。このようなリポジトリはベア リポジトリと呼ばれます。
(2) 新しい git サーバーから空のプロジェクトを作成
(3) ミラープッシュでコードを新しい git サーバーにアップロード

cd project.git 
git push --mirror [email protected]/username/newproject.git

上記のコマンドでは、 cd project.git は、最初のステップで git クローンしたバージョン ライブラリです。これは、フォルダー
git Push --mirror の背後にあるアドレスです。新しい git サービスで新しく作成されたプロジェクトの git アドレスです。 、これがインポートしたいものです。
メイン git プッシュのアドレスにも、対応するアクセス許可が必要です。そうでない場合は、エラーが報告されます。

$ git Push --mirror [email protected] :group/project.git
オブジェクトを数えています: 64、完了しました。
最大 4 つのスレッドを使用するデルタ圧縮。
オブジェクトの圧縮: 100% (36/36)、完了。
オブジェクトの書き込み: 100% (64/64)、56.90 KiB | 0バイト/秒、完了。
合計 64 (デルタ 12)、再利用 64 (デルタ 12)
リモート: GitLab:
リモート: グループ/プロジェクトのデフォルト ブランチ (マスターなど) がまだ存在していません リモート
: プロジェクトの所有者またはメンテナにデフォルト ブランチを作成するように依頼してください:
リモート:
リモート: http://git.bbb.com/group/project/project_members
リモート: [email protected] :group/project.git
! [リモートが拒否されました] dev -> dev (pre-receive フックが拒否されました)

[リモート拒否] マスター -> マスター (受信前フックが拒否されました) .0.190630_release (受信前フックが拒否されました)
エラー: 一部の参照を '[email protected]:group/project.git' にプッシュできませんでした

git Push を実行すると、新しい git に正常にアップロードされ、クローンされたベア バージョン ライブラリは削除できます。

次に、新しい git アドレスからプロジェクトのクローンを作成すると、引き続き使用できます。

おすすめ

転載: blog.csdn.net/small_tu/article/details/94722716