GNU/Linux >> Belajar Linux >  >> Linux

Migrasikan repo antar instance Gitlab

Saya baru-baru ini bermigrasi dari gitolite ke gitlab dan tugas rake resmi gitlab:import:repos bekerja untuk saya. Saya menggunakan gitlab 6.1.0 (82f3446). Inilah yang saya lakukan:

  • rsync repo telanjang dari gitolite ke repositories/{group}/ . Pastikan untuk mengganti {repository} dengan nama repo gitolite, dan ubah nama host server gitlab Anda.

    rsync -rth --progress repositories/{repository}.git \
    [email protected]:/home/git/repositories/{group}/
    

    Di sini, {group} adalah nama grup pengguna tempat Anda ingin menambahkan repositori. Jika Anda tidak memiliki grup tertentu, pilih root sebagai nama grup.

  • Perbaiki izin – hanya diperlukan saat rsync pengguna bukan git :

    sudo chown -R git:git repositories/{group}/
    
  • cd ~/gitlab

  • Jalankan tugas rake untuk mengimpor semua repositori baru:

    bundle exec rake gitlab:import:repos RAILS_ENV=production
    

Sekarang jika Anda masuk sebagai Administrator, Anda akan menemukan proyek baru ditambahkan.

Untuk informasi selengkapnya, lihat "Impor repositori kosong ke dalam instance proyek GitLab" di bawah http://{your-gitlab-server}/help/raketasks .

Dalam kasus Anda, Anda dapat masuk ke sistem TKL lama dan menyinkronkan semua repo kosong ke instance baru, diikuti dengan impor.


Salah satu opsinya adalah:

  1. Kloning repo lama dari gitlab ke mesin dev.
  2. Buat repo kosong di gitlab baru.
  3. Tambahkan repo baru sebagai remote pada mesin dev.
  4. Dorong semuanya kembali ke repo baru.
  5. Hapus repo lama dari daftar repo jarak jauh.

Untuk membuat remote bernama newRepo, lakukan:git remote add newRepo gitlab.localhost.com:User/newRepo.git (ganti url di bagian akhir dengan url untuk repo Anda)


Saya melakukannya secara praktis dengan cara berikut setelah membaca jawaban ChrisA, yang membuat saya sedikit pusing tentang bagaimana melakukannya secara praktis. Contoh menyalin repo dari github ke gitlab, untuk memperjelas sumber dan tujuan.

  1. Kloning repo lama dari github ke mesin dev (yang membuat repo kosong):

    $ git clone --mirror [email protected]:me/myrepo.git
    
  2. Buat repo kosong di gitlab baru.

  3. Tambahkan repo baru sebagai remote pada mesin dev.

    $ cd myrepo.git
    $ git remote add newRepo [email protected]:me/myrepo.git
    
  4. Dorong semuanya kembali ke repo baru.

    $ git push --mirror newRepo
    

Itu saja.

Dengan cara ini menyalin semua cabang dan tag ke tujuan baru.

Anda sekarang dapat menghapus repo telanjang yang dikloning dari mesin dev Anda.


Linux
  1. Git Pelengkapan otomatis?

  2. Apa Perbedaan Antara Git Switch dan Checkout?

  3. Bermigrasi antar rasa server

  1. Buka file langsung dari repositori pribadi GitLab

  2. Bagaimana cara menyalin komit dari satu repo Git ke yang lain?

  3. git memaksa menyegarkan indeks setelah beralih antara windows dan linux

  1. Instal GitLab di CentOS 7

  2. Instal GitLab di Debian 10

  3. Menambahkan repo dan cabang Git ke baris status Tmux