cari

Rumah  >  Soal Jawab  >  teks badan

github - Menggunakan git untuk mengurus kod, cawangan pembangunan dan cawangan dalam talian mempunyai fail yang berbeza, cara menanganinya

Apabila menggunakan git untuk pengurusan kod, terdapat pembangun cawangan pembangunan dan pro cawangan dalam talian.

Semasa pembangunan, semua orang akan menarik cawangan mereka sendiri daripada cawangan dev, membangunkannya dan menggabungkannya ke dalam cawangan dev selepas selesai.
Apabila persekitaran dalam talian dikemas kini, kod terkini akan ditarik dari cawangan pro, dan kemudian perkhidmatan akan dimulakan semula.

Terdapat masalah di sini Cawangan dev dan cawangan pro selalunya mempunyai beberapa fail yang berbeza, seperti fail konfigurasi, tetapan, dsb. Apakah pendekatan yang sesuai dalam situasi ini?

Jika fail tetapan tidak disertakan dalam git, jika fail konfigurasi perlu dikemas kini, kod tersebut perlu diubah suai secara manual dalam persekitaran dalam talian.

Bagaimana anda melakukannya? Menggabungkan git untuk mencapai penggunaan automatik dan rollback?

Terima kasih

世界只因有你世界只因有你2794 hari yang lalu766

membalas semua(2)saya akan balas

  • 高洛峰

    高洛峰2017-05-02 09:27:01

    Perbezaan dalam persekitaran:

    Perbezaan antara persekitaran pengeluaran dan persekitaran bukan pengeluaran (seperti persekitaran pembangunan, persekitaran ujian, dll.), sebagai tambahan kepada konfigurasi, mungkin terdapat beberapa sumber bergantung yang juga berbeza.

    Fail konfigurasi:

    Kaedah biasa yang saya gunakan di sini ialah menulis semua konfigurasi persekitaran pengeluaran dan persekitaran lain ke dalam fail konfigurasi itu (atau berbilang fail config/dev.json, config/pro.json...), dan kemudian ada konfigurasi Pemproses akan bertanggungjawab untuk membaca persekitaran setempat (ini termasuk dalam skop git, dan mungkin modul permulaan), dan kemudian membaca konfigurasi persekitaran yang sepadan dalam fail konfigurasi satu fail konfigurasi, ia adalah serupa dengan yang berikut:

    {
        'pro':{
            'ver':'0.1.0',
            'configA':'value'
        },
        'dev':{
            'ver':'0.1.12',
            'configA':'value'
        },
        'test'{
            'ver','0.1.32',
            'configA':'value'
        }
        ...
    }

    Label Alam Sekitar

    Bagaimana pemproses konfigurasi mengetahui persekitaran semasa perlu ada 环境标识 yang lebih langsung dan meluas sebagai contoh, persekitaran pengeluaran digunakan pada IP tetap (. sesuai untuk aplikasi tunggal pelayan) , konfigurasi persekitaran pengeluaran fail konfigurasi ditulis di bawah IP ini Selepas pemproses konfigurasi memperoleh IP persekitaran berjalan semasa, ia membaca konfigurasi modul IP yang dinyatakan dalam fail konfigurasi 🎜> Cara lain ialah menggunakan
    , Sebagai contoh, terdapat fail teks /data/tag dalam semua persekitaran di mana aplikasi dijalankan (ia juga boleh berada dalam direktori projek, tetapi disertakan dengan .gitignore Ini). fail tidak berada dalam skop git. Hanya terdapat satu baris di dalamnya, ditulis 标识文件 atau pro, supaya pemproses konfigurasi akan mengetahui bahagian mana fail konfigurasi yang hendak diperolehi dengan membaca fail ini cara yang paling biasa ialah menggunakan pembolehubah persekitaran, seperti dev, dan kemudian baca pembolehubah ini dahulu Baca konfigurasi persekitaran anda yang sepadan sekali lagi.
    export APP_ENV=productionPelayan Konfig

    Dalam tempoh kemudian, kebanyakan aplikasi digunakan dalam cara yang diedarkan, iaitu, aplikasi yang sama boleh digunakan untuk lebih daripada 20 atau lebih pelayan Pada masa ini, mesti ada

    pelayan konfigurasi

    untuk mengendalikan dan mengedarkannya secara khusus. Kemas kini konfigurasi aplikasi setiap pelayan Pada pelayan konfigurasi ini, anda boleh mengkonfigurasi pelayan mana yang menggunakan konfigurasi (biasanya dikonfigurasikan dengan IP peminta setiap aplikasi akan pergi ke pelayan konfigurasi). minta konfigurasinya sendiri apabila ia bermula Dengan cara ini, aplikasi boleh menjadi tanpa kewarganegaraan sepenuhnya,
    tiada fail konfigurasi diperlukan sama sekali
    dan konfigurasi boleh dikawal pada butiran halus (contohnya, Saya ingin meningkatkan aliran permintaan pelayan tertentu), Serta merealisasikan keluaran skala kelabu (pengerahan kod baharu pada sesetengah pelayan), saya fikir ini mungkin kaedah yang digunakan oleh kebanyakan syarikat Internet pada masa ini.

    balas
    0
  • 世界只因有你

    世界只因有你2017-05-02 09:27:01

    Tetapkan fail abaikan dan simpan parameter konfigurasi yang berbeza dalam fail abaikan.

    balas
    0
  • Batalbalas