Artikel ini dicipta dengan kerjasama Buddy. Terima kasih kerana menyokong rakan kongsi yang membuat SitePoint mungkin.
Artikel ini akan membimbing anda tentang cara menubuhkan saluran paip integrasi/penempatan berterusan untuk aliran kerja cawangan. Kami akan menggunakan perkhidmatan CI/CD Buddy untuk menubuhkan saluran paip ini. Kami akan menggunakan projek JavaScript asas di mana kami akan menubuhkan beberapa cawangan pembangunan. Saya akan menunjukkan kepada anda bagaimana untuk mengautomasikan ujian pada setiap jenis cawangan. Saya juga akan memperkenalkan konsep aliran kerja cawangan dan menunjukkan beberapa contoh yang boleh anda ambil dalam projek anda.
Strategi cawangan sifar hanya mengatakan bahawa "anda tidak menggunakan strategi cawangan". Ia juga dikenali sebagai aliran kerja asas. Anda hanya mempunyai satu cawangan induk di mana anda boleh melakukan dan membina versi anda secara langsung. Strategi ini mudah dan baik jika projek memenuhi syarat -syarat berikut:
Projek jenis ini termasuk tutorial, demonstrasi, prototaip, templat projek pengenalan, dan projek peribadi. Walau bagaimanapun, kaedah ini mempunyai beberapa kelemahan:
Semua masalah ini dapat diselesaikan dengan mengadopsi strategi cawangan. Ini sepatutnya memberi anda:
Sila ambil perhatian bahawa anda bebas memilih dari pelbagai jenis aliran kerja cawangan. Anda juga boleh membuat aliran kerja cawangan tersuai yang sesuai dengan anda. Mari kita mulakan dengan strategi cawangan yang paling mudah.
Dalam dasar ini, anda akan menubuhkan cawangan jangka panjang yang dipanggil Develop yang berjalan selari dengan cawangan utama. Semua kerja pertama kali komited untuk membangunkan cawangan. Ini adalah tempat yang selamat di mana anda boleh memperkenalkan kod yang boleh memecahkan projek anda. Anda memerlukan strategi ujian untuk memastikan bahawa kesilapan tidak diperkenalkan ke cawangan utama apabila perubahan digabungkan.
Kelebihan aliran kerja ini adalah:
Kelemahan aliran kerja ini adalah:
mari kita lihat aliran kerja lain yang dapat mengurangkan cabaran -cabaran ini.
Dalam aliran kerja ini, anda menyediakan cawangan ciri baru setiap kali anda ingin membangunkan ciri baru. Sekiranya ada masalah, anda sentiasa boleh menggunakan pembetulan panas di cawangan utama. Pemaju perlu mengekstrak pembetulan terkini dari cawangan utama sebelum mereka dapat menggabungkan cawangan ciri mereka ke cawangan utama.
Untuk menjejaki ciri -ciri dan pembetulan pepijat yang sedang dibangunkan, anda perlu membuat konvensyen penamaan untuk cawangan. Berikut adalah beberapa cadangan format yang boleh anda temui di internet:
Kelebihan strategi ini adalah:
Kelemahan strategi ini adalah:
mari kita lihat strategi seterusnya dan lihat bagaimana kita dapat mengurangkan masalah ini.
GitFlow adalah model yang disesuaikan yang membolehkan anda memilih ciri -ciri yang paling sesuai dengan projek dan pasukan anda. Jika anda menggunakan GitFlow, anda boleh mengambil lanjutan Git Daniel Kummer untuk Git. Alat ini membolehkan pemaju melakukan operasi repositori maju berdasarkan model Vincent. Saya tidak akan masuk ke dalam ini secara mendalam, tetapi inilah beberapa perkara yang perlu anda ketahui.
Pro:
untuk pasukan besar yang bekerja pada projek kompleks
terlalu rumit untuk projek kecil
saluran paip model cawangan
Seterusnya, muat turun projek entri berikut dan tolak ke repositori anda:
Projek ini adalah projek reaksi mudah yang dibina menggunakan Parcel. Anda boleh menjalankan arahan berikut untuk memastikan ia berjalan:
<code>$ git clone git@github.com:brandiqa/react-parcel-starter.git buddy-demo $ git remote rm origin # 将`username`替换为您自己的用户名 $ git remote add origin git@github.com:username/buddy-demo.git $ git config master.remote origin $ git config master.merge refs/heads/master $ git push -u origin master </code>
Jika anda menggunakan kod Visual Studio, tekan F5 untuk melancarkan penyemak imbas. Jika tidak, buka halaman penyemak imbas dan navigasi ke localhost: 1234.
<code>$ npm install $ npm start </code>
seperti yang anda lihat, tidak ada yang istimewa. Sebelum kita menggunakannya kepada Buddy CI, kita perlu menulis ujian. Kami akan menggunakan rangka kerja ujian jest untuk ini:
<code>$ git clone git@github.com:brandiqa/react-parcel-starter.git buddy-demo $ git remote rm origin # 将`username`替换为您自己的用户名 $ git remote add origin git@github.com:username/buddy-demo.git $ git config master.remote origin $ git config master.merge refs/heads/master $ git push -u origin master </code>
Kemas kini bahagian skrip Pakej.JSON untuk menjalankan JEST apabila arahan ujian NPM dilaksanakan.
<code>$ npm install $ npm start </code>
mari kita mengemas kini sedikit srcapp.jsx:
<code>$ npm install -D jest </code>
Seterusnya, mari kita tulis ujian yang boleh dilalui. Buat fail app.test.js dan masukkan kod ini:
<code> "scripts": { //... "test": "jest" }, </code>
Jalankan arahan ujian NPM untuk mengesahkan bahawa ujian kami telah berlalu.
Tidak kira pembekal perkhidmatan yang anda pilih, Buddy menyenaraikan repositori yang mana anda boleh menyediakan automasi. Dalam contoh ini, kami akan memilih projek Buddy-Demo. Klik butang "Tambah Pipeline Baru" dan isi butiran berikut pada halaman seterusnya:
Dalam saluran paip cawangan utama kami, kami akan menubuhkan tindakan untuk:
<code><div>> <h1>></h1>React Parcel Starter Kit> <p>></p>This page is on master branch!> </div>> </code>
Anda boleh menamakan semula nama operasi untuk menjalankan ujian dalam tab Tindakan. Apa yang saya ingin tunjukkan ialah jika ujian anda memerlukan perkhidmatan pangkalan data, anda boleh menetapkan satu melalui tab Perkhidmatan:
Pangkalan data yang paling popular sudah disokong. Hanya pilih jenis pangkalan data dan berikan butiran dan kelayakan sambungan. Apabila selesai, klik butang Tambah ini. Pada halaman seterusnya, klik butang Plus di bahagian bawah untuk menambah tindakan sumber bundle. Pilih Node.js sekali lagi dan masukkan arahan berikut pada halaman seterusnya:
<code>$ git clone git@github.com:brandiqa/react-parcel-starter.git buddy-demo $ git remote rm origin # 将`username`替换为您自己的用户名 $ git remote add origin git@github.com:username/buddy-demo.git $ git config master.remote origin $ git config master.merge refs/heads/master $ git push -u origin master </code>
Namakan semula tindakan untuk membungkus sumber dalam tab Tindakan. Klik Tambahkan ini apabila anda selesai. Klik tanda tambah sekali lagi untuk menambah penggunaan ke tindakan pengeluaran. Sokongan asli Buddy untuk menggunakan projek ke pelbagai jenis vendor hosting:
Jika anda mempunyai akaun dalam mana -mana perkhidmatan ini, jangan ragu untuk menggunakan sebarang pilihan penempatan. Jika anda tidak mempunyai satu, pilih pembekal yang membolehkan anda menyediakan akaun percuma untuk menggunakan aplikasi anda. Dalam kes saya, saya sudah mempunyai akaun pelan hosting web bersama yang boleh saya gunakan. Biasanya, anda akan mempunyai laman web utama anda www.domainname.com untuk menjadi tuan rumah versi pengeluaran langsung projek anda.
Anda perlu mempunyai tapak pementasan yang berasingan (biasanya tersembunyi dari orang awam) yang digunakan dari saluran pembangunan atau integrasi cawangan anda. Tapak pementasan hanya boleh menjadi subdomain dan enjin carian tidak boleh mengindeksnya. Tapak pementasan akan membolehkan pemaju, pengurus projek, dan penguji untuk mengesahkan bahawa ciri -ciri baru berfungsi dengan baik sebelum menolak ke tapak pengeluaran secara langsung.
Untuk menggunakan aplikasi anda ke pelayan hosting web yang dikongsi atau berdedikasi (menggunakan cPanel), hanya gunakan kaedah FTP. Buddy juga menyediakan kaedah SFTP yang menyulitkan pakej sumber projek anda apabila dimuat naik ke pelayan. Berikut adalah contoh bagaimana saya menubuhkan saya:
Anda perlu menyediakan akaun FTP baru menggunakan cPanel anda. Pastikan direktori rumah dari akaun pengguna FTP baru anda terus ke folder WWW atau Subdomain. Jika tidak, anda mungkin tidak dapat mengakses direktori terurus yang betul melalui FTP. Selepas menubuhkan ketiga -tiga operasi dalam saluran paip, anda boleh:
Setelah selesai, saluran paip lengkap kelihatan seperti ini:
Katakan anda menggunakan aliran kerja gitflow atau sesuatu yang serupa, anda mungkin perlu menubuhkan saluran paip lain untuk:
Paip cawangan pembangunan hampir sama dengan saluran paip cawangan utama. Walau bagaimanapun, anda perlu menyediakan konfigurasi yang berbeza untuk penggunaan untuk menggunakan kod ke tapak pementasan. Paip cawangan fungsional dan panas hanya perlu dikonfigurasikan sekurang -kurangnya untuk operasi ujian. Anda mungkin mahu mengehadkan bilangan ujian yang boleh anda jalankan dalam saluran paip cawangan ciri. Anda boleh melakukan ini dengan mudah dengan hanya menambah ini ke arahan ujian: jest --coverage --ChangedSince = Master. Ini hanya akan menguji kod baru yang belum ditolak ke cawangan utama.
Oleh kerana terdapat pelbagai ciri dan cawangan Hot Fix, anda mungkin ingin tahu bagaimana untuk menubuhkan saluran paip untuk keadaan ini. Sangat mudah - hanya gunakan pilihan Wildcard:
Untuk mengesahkan bahawa saluran pembangunan/ciri*/hotfix* anda berfungsi, hanya buat cawangan di komputer anda. Dalam contoh ini, mari buat cawangan ciri rawak:
<code>$ git clone git@github.com:brandiqa/react-parcel-starter.git buddy-demo $ git remote rm origin # 将`username`替换为您自己的用户名 $ git remote add origin git@github.com:username/buddy-demo.git $ git config master.remote origin $ git config master.merge refs/heads/master $ git push -u origin master </code>
kemudian buat ujian baru dalam app.test.js:
<code>$ npm install $ npm start </code>
Seterusnya, lakukan perubahan dan tolak cawangan ke repositori GitHub anda:
<code>$ npm install -D jest </code>
Jika anda cepat beralih ke papan pemuka Akaun Buddy anda, anda harus melihat saluran paip anda mengambil cawangan baru anda dan menjalankan tindakan yang anda tentukan. Inilah cara kami menubuhkan saluran paip untuk sebarang aliran kerja dasar cawangan yang telah diterima pakai oleh projek itu.
Perkara terakhir yang perlu diperhatikan ialah jika anda bercadang untuk mempunyai cawangan jangka panjang, sebaiknya tetapkannya di repositori yang dikongsi terlebih dahulu. Dengan cara ini, apabila anda mula membuat saluran paip baru, anda hanya boleh menggunakan pilihan Cawangan Pilih untuk memilih cawangan jangka panjang anda.
Kami kini telah menyelesaikan tutorial ini. Sebagai cabaran, terus menubuhkan saluran paip untuk pembaikan dan pembangunan panas. Buat beberapa cawangan dan tulis beberapa ujian gagal untuk melihat apa yang berlaku. Anda juga boleh terus meneliti lebih lanjut mengenai strategi cawangan Git. Anda juga boleh memasang aliran git dan menggunakan alat untuk menyesuaikan aliran kerja cawangan anda sendiri. Kemudian, sediakan saluran paip kawan anda untuk menyokong aliran kerja cawangan git adat anda.
Bagaimana untuk membuat cawangan baru di Git?
Bagaimana untuk menggabungkan perubahan dari satu cawangan ke cawangan yang lain?
konflik cawangan git berlaku apabila dua atau lebih pemaju membuat perubahan pada bahagian yang sama dari pangkalan kod di cawangan yang berlainan dan kemudian cuba menggabungkan perubahan tersebut. GIT tidak tahu apa perubahan untuk disimpan dan apa yang berubah untuk membuang, mengakibatkan konflik. Untuk menyelesaikan konflik, anda perlu mengedit fail yang bercanggah secara manual untuk menentukan perubahan yang perlu disimpan. Selepas konflik diselesaikan, anda boleh menggunakan Git Tambah untuk menambah fail yang diselesaikan ke kawasan pementasan dan kemudian menggunakan komitmen Git untuk melakukan perubahan. Menghapus cawangan dalam git dilakukan menggunakan perintah cawangan git -d diikuti dengan nama cawangan. Sebagai contoh, cawangan git -d lama akan memadam cawangan bernama "Old-feature". Walau bagaimanapun, jika cawangan mempunyai perubahan yang belum digabungkan, GIT tidak akan membenarkan anda memadam cawangan. Jika anda pasti anda mahu memadam cawangan dan kehilangan perubahan ini, anda boleh menggunakan pilihan -d sebaliknya, seperti yang ditunjukkan di bawah: cawangan git -d -feature. anda boleh menggunakan arahan cawangan git (tanpa sebarang parameter) untuk melihat semua cawangan dalam repositori git. Ini menyenaraikan semua cawangan di repositori, cawangan semasa diserlahkan dan ditandai dengan asterisk. Cawangan tempatan di Git adalah cawangan yang hanya wujud di mesin tempatan, sementara cawangan terpencil adalah cawangan yang ada di repositori jauh. Apabila mengkloning repositori, Git mencipta cawangan tempatan untuk semua cawangan terpencil. Anda boleh mengendalikan cawangan tempatan ini dan kemudian menolak perubahan ke cawangan terpencil apabila siap. Menamakan semula cawangan git dilakukan menggunakan perintah cawangan git -m diikuti oleh nama cawangan lama dan nama cawangan baru. Sebagai contoh, Git Branch -m lama nama baru akan menamakan semula cawangan "nama lama" kepada "nama baru". Jika anda sedang berada di cawangan, anda ingin menamakan semula, anda boleh menghilangkan nama cawangan lama seperti berikut: cawangan git -m baru. Anda boleh menggunakan arahan git revert diikuti dengan hash komit untuk memulihkan perubahan dalam cawangan git. Ini mewujudkan komit baru, perubahan yang dibuat dalam komit yang ditentukan. Sebagai contoh, Git kembali A867B4AF akan mewujudkan komit baru, perubahan yang dibuat dalam komit yang telah berlaku kepada "A867B4AF". anda boleh menggunakan arahan log git untuk melihat sejarah komit cawangan git. Ini akan memaparkan senarai semua komitmen yang dibuat pada cawangan semasa dalam susunan kronologi terbalik. Jika anda ingin melihat sejarah komit untuk cawangan yang berbeza, anda boleh menentukan nama cawangan seperti berikut: Git log cawangan-nama. Apakah konflik cawangan git dan bagaimana menyelesaikannya?
Bagaimana untuk memadam cawangan di Git?
Bagaimana untuk melihat semua cawangan dalam repositori git?
Apakah perbezaan antara cawangan tempatan dan cawangan terpencil di Git?
bagaimana untuk menamakan semula cawangan git?
Bagaimana untuk memulihkan perubahan dalam cawangan git?
Bagaimana untuk melihat sejarah komitmen cawangan git?
Atas ialah kandungan terperinci Cara Menggunakan Cawangan & Buddy Git Untuk Menyusun Kod Projek. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!