cawangan git: alat untuk kerjasama yang cekap
Artikel ini dikutip dari buku "Jump Start Git", yang boleh didapati secara percuma kepada ahli Premium SitePoint. Buku -buku fizikal boleh didapati di kedai buku utama di seluruh dunia, dan anda juga boleh memerintahkan mereka di sini. Semoga anda suka dan mendapat manfaat daripadanya!
Dalam Bab 1, saya bercakap tentang ketakutan awal saya untuk mencuba perkara -perkara baru dalam projek saya. Bagaimana jika anda mencuba beberapa ciri bercita -cita tinggi tetapi memecahkan bahagian yang sebelum ini berfungsi? Ciri cawangan Git sempurna menyelesaikan masalah ini.
Ringkasan mata utama
- Cawangan git membolehkan membuat salinan projek untuk bereksperimen tanpa menjejaskan projek asal. Jika percubaan berjaya, mudah untuk menggabungkan unsur -unsur eksperimen ke cawangan utama.
- Cawangan membenarkan pelbagai tugas diproses serentak tanpa mengganggu satu sama lain. Ini sangat berguna apabila menunggu kelulusan satu ciri sambil memerlukan memproses ciri lain. Cawangan juga boleh membuat kod lebih mudah difahami dengan memisahkan idea yang berbeza.
- Buat cawangan dalam git menggunakan perintah
git branch [分支名称]
. Tukar ke cawangan ini untuk menggunakangit checkout [分支名称]
. Memadam cawangan menggunakangit branch -D [分支名称]
, tetapi disyorkan untuk tidak memadam cawangan kecuali perlu. - Menggabungkan cawangan dalam Git adalah proses yang mudah. Selepas memastikan bahawa cawangan yang diperlukan aktif, gunakan arahan
git merge [分支名称]
. Walau bagaimanapun, ini boleh mewujudkan gelung dalam sejarah projek, yang sukar untuk menavigasi dalam pasukan besar. Bab seterusnya akan meneroka kaedah gabungan yang tidak membuat gelung.
Apa itu cawangan?
Mewujudkan cawangan baru dalam projek itu pada dasarnya bermakna membuat salinan projek. Anda boleh menggunakan salinan ini untuk mencuba tanpa menjejaskan projek asal. Jadi jika eksperimen gagal, anda boleh menyerahkannya dan kembali ke projek asal - cawangan utama.
Dan, kemudian, jika anda mengubah fikiran anda, anda boleh memulihkan dengan mudah ke keadaan projek sebelum bergabung.
Oleh itu, cawangan dalam Git adalah laluan pembangunan bebas. Anda boleh membuat komitmen baru di cawangan tanpa menjejaskan cawangan lain. Kemudahan penggunaan cawangan adalah salah satu ciri terbaik Git. (Walaupun pilihan kawalan versi lain (seperti CVS) juga mempunyai pilihan cawangan, pengalaman menggabungkan cawangan pada CVS sangat membosankan. Jika anda mempunyai pengalaman menggunakan cawangan dalam sistem kawalan versi lain, yakinlah bahawa menggunakan cawangan di Git adalah sama sekali berbeza. )Dalam git, anda berada di cawangan utama secara lalai. Nama "Master" tidak bermakna ia lebih unggul dalam apa cara sekalipun. Ini hanya pepatah konvensional.
NOTA: Perjanjian cawangan
Walaupun anda bebas menggunakan cawangan yang berbeza sebagai cawangan asas dalam Git, orang biasanya mengharapkan untuk mencari kod terkini untuk projek tertentu di cawangan utama.Anda mungkin berhujah bahawa tiada cawangan diperlukan kerana keupayaan untuk kembali kepada apa -apa komit. Tetapi bayangkan bahawa anda perlu menunjukkan kerja anda kepada penyelia anda sambil membangunkan ciri baru yang bukan sebahagian daripada kerja yang telah anda lakukan. Oleh kerana cawangan digunakan untuk memisahkan idea yang berbeza, ia menjadikan kod dalam repositori mudah difahami. Di samping itu, cawangan membolehkan anda mengekalkan komitmen penting hanya di Cawangan Master atau Master.
Satu lagi penggunaan cawanganialah mereka membolehkan anda mengendalikan pelbagai perkara pada masa yang sama tanpa mengganggu satu sama lain. Katakan anda menyerahkan Ciri 1 untuk semakan, tetapi ia akan mengambil sedikit masa untuk penyelia anda untuk mengkaji semula. Pada masa yang sama, anda perlu mengendalikan Fungsi 2. Dalam kes ini, cawangan itu berguna. Sekiranya anda mengusahakan idea baru anda di cawangan baru, anda boleh beralih ke cawangan anda pada bila -bila masa untuk memulihkan repositori ke keadaan terdahulu, yang tidak mengandungi sebarang kod yang berkaitan dengan idea anda.
Sekarang mari kita mula menggunakan cawangan di Git. Untuk melihat senarai cawangan dan cawangan semasa yang anda gunakan, jalankan arahan berikut:
<code>git branch</code>
Jika anda telah mengklonkan repositori anda atau menubuhkan repositori jauh, anda juga boleh melihat cawangan jauh. Tambah sahaja -a:
<code>git branch -a</code>
Seperti yang ditunjukkan di atas, cawangan merah menunjukkan bahawa ia terletak di repositori jauh. Dalam contoh kita, kita dapat melihat pelbagai cawangan yang wujud di repositori jauh asal.
Buat cawangan
Terdapat beberapa cara untuk membuat cawangan di Git. Untuk membuat cawangan baru dan simpan di cawangan semasa, jalankan arahan berikut:
di sini,
<code>git branch test_branch</code>adalah nama cawangan yang dicipta. Walau bagaimanapun, selepas berjalan
, nampaknya cawangan aktif masih merupakan cawangan utama. Untuk menukar cawangan aktif, kita boleh menjalankan perintah checkout (seperti yang ditunjukkan di bawah): test_branch
<code>git branch</code>
<code>git checkout test_branch</code>
anda juga boleh menggabungkan dua arahan di atas untuk membuat dan menyemak cawangan baru dalam satu arahan dengan menambah -b selepas perintah checkout:
<code>git checkout -b new_test_branch</code>Cawangan yang kami buat hanya berdasarkan komit terkini cawangan yang aktif (dalam hal ini cawangan utama). Jika anda ingin membuat cawangan (mis.

untuk menamakan semula cawangan semasa ke cafb55d
, jalankan arahan berikut: old_commit_branch
<code>git checkout -b old_commit_branch cafb55d</code>
Padam cawangan
Untuk memadam cawangan, jalankan arahan berikut: renamed_branch
<code>git branch</code>
NOTA: Jangan padamkan cawangan melainkan perlu
Oleh kerana sebenarnya tidak ada kelemahan untuk menjaga cawangan, saya cadangkan tidak memadamkannya kecuali bilangan cawangan di repositori menjadi terlalu besar untuk dikendalikan.pilihan
yang digunakan di atas akan memadam cawangan walaupun cawangan tidak disegerakkan dengan cawangan jauh. Ini bermakna jika anda mempunyai komit yang tidak ditolak di cawangan semasa anda, -D
masih akan memadamkan cawangan anda tanpa sebarang amaran. Untuk memastikan anda tidak kehilangan data, anda boleh menggunakan -D
sebagai alternatif kepada -d
. -D
Padam cawangan hanya jika mereka telah disegerakkan dengan cawangan jauh. Oleh kerana cawangan kami belum disegerakkan, mari kita lihat apa yang berlaku jika kita menggunakan -d
, seperti yang ditunjukkan di bawah: -d
seperti yang anda lihat, Git akan memberi amaran kepada anda dan membatalkan operasi kerana data tidak digabungkan dengan cawangan.
Cawangan dan kepala
Sekarang kita mempunyai peluang untuk mencuba asas -asas cawangan, mari kita luangkan masa untuk membincangkan bagaimana cawangan bekerja di Git dan memperkenalkan konsep penting: kepala.
Seperti yang disebutkan di atas, cawangan hanya hubungan antara komitmen yang berbeza, atau melalui jalan komit. Harus diingat bahawa apabila menggunakan cawangan, kepala cawangan menunjuk kepada komit terkini di cawangan. Saya akan menyebut kepala beberapa kali dalam bab -bab berikut. Di Git, kepala menunjukkan komitmen terkini di cawangan. Dalam erti kata lain, ia merujuk kepada bahagian atas cawangan.
Cawangan pada dasarnya adalah penunjuk kepada komitmen yang mempunyai komitmen ibu bapa, komitmen nenek, dan sebagainya. Rantai komit ini membentuk jalan yang saya nyatakan di atas. Jadi, bagaimana untuk menghubungkan cawangan dan kepala? Nah, bahagian atas kepala dan titik cawangan semasa untuk komit yang sama. Mari lihat carta untuk menggambarkan idea ini:
seperti yang ditunjukkan di atas, pada mulanya merupakan cawangan aktif, dan titik kepala untuk melakukan C. Commit a adalah komitmen asas, tanpa sebarang orang tua, jadi komitmen dalam
adalah E → D → B → A. Ketua menunjuk kepada komitmen terkini cawangan aktif branch_A
, iaitu, komit C. Apabila kita menambah komit, ia akan ditambah ke cawangan aktif. Selepas melakukan, branch_A
menunjuk kepada F, dan cawangan mengikuti F → C → B → A, sementara branch_B
tetap sama. Ketua kini menunjuk kepada F. Sekali lagi, apabila kita menambah komit lain, perubahan itu ditunjukkan dalam angka itu. branch_A
branch_A
branch_B
cawangan maju: gabungan cawangan
Seperti yang disebutkan sebelumnya, salah satu kelebihan terbesar Git adalah bahawa ia sangat mudah untuk menggabungkan cawangan. Sekarang mari kita lihat bagaimana ia dilakukan.
kami akan membuat dua cawangan baru - new_feature
dan another_feature
- dan menambah beberapa komitmen maya. Memeriksa sejarah setiap cawangan menunjukkan kepada kami bahawa cawangan another_feature
memimpin satu komit seperti berikut:
untuk menggabungkan
new_feature
<code>git branch</code>
untuk menggabungkan dengan
aktif): another_feature
new_feature
new_feature
Hasilnya boleh ditunjukkan dalam angka di bawah:
<code>git branch -a</code>
Petua penting: Perhatikan kitaran
Imej di atas menunjukkan bahawa gabungan ini mencipta gelung di dua komitmen dalam sejarah projek anda di mana aliran kerja menyimpang dan menumpu masing -masing. Gelung sedemikian mungkin tidak menjadi masalah apabila bekerja bersendirian atau dalam pasukan kecil. Walau bagaimanapun, dalam pasukan yang lebih besar - mungkin terdapat banyak komitmen sejak anda menyimpang dari cawangan utama - gelung besar ini menjadikannya sukar untuk menavigasi sejarah dan memahami perubahan. Kami akan meneroka cara untuk menggabungkan cawangan menggunakan perintah rebase tanpa membuat gelung dalam bab 6.
Tidak ada "konflik" dalam gabungan ini. Alasannya adalah mudah, tiada komitmen baru ditambah ke cawangan
berbanding dengan cawangan. Konflik dalam Git berlaku apabila bahagian yang sama dari fail yang sama diubahsuai dalam komitmen bukan awam di kedua-dua cawangan. Git melemparkan konflik untuk memastikan anda tidak kehilangan sebarang data.
another_feature
Satu lagi cara untuk menggabungkan cawangan adalah gabungan ke hadapan yang tidak pantas, dengan menambahkan new_feature
selepas perintah gabungan. Dengan cara ini, komit baru dicipta di cawangan asas dengan perubahan dari cawangan lain. Anda juga perlu menentukan mesej penyerahan:
<code>git branch</code>
Dalam contoh di atas, bekas (gabungan new_feature
dengan cawangan utama) adalah gabungan ke hadapan yang cepat, sementara yang terakhir adalah gabungan ke hadapan yang tidak pantas dengan komit gabungan.
Walaupun gabungan gaya ke hadapan cepat adalah lalai, biasanya lebih baik menggunakan kaedah ke hadapan yang tidak cepat untuk bergabung dengan gabungan ke cawangan utama. Dalam jangka masa panjang, mengenal pasti komitmen baru yang menggabungkan ciri -ciri baru mungkin bermanfaat kerana secara logiknya memisahkan bahagian kod yang bertanggungjawab untuk ciri -ciri baru menjadi satu komit.
Kesimpulan
Apa yang telah anda pelajari?
Dalam bab ini, kita membincangkan cawangan apa dan bagaimana untuk menguruskannya dalam Git. Kami melihat membuat, mengubahsuai, memadam, dan menggabungkan cawangan.
Apa yang akan datang?
Saya telah bercakap tentang bagaimana Git baik untuk pemaju yang bekerja dengan pasukan. Ini diterokai dengan lebih terperinci dalam bab seterusnya, serta operasi dan arahan Git tertentu yang sering digunakan dalam pasukan yang diedarkan.
Soalan Lazim Mengenai Cawangan Git
- Apakah tujuan utama cawangan git?
Cawangan Git adalah ciri yang kuat yang membolehkan pemaju membuat garis pembangunan berasingan. Ini amat berguna apabila berurusan dengan ciri -ciri baru atau pembetulan, kerana ia membolehkan anda mengasingkan kerja anda dari projek utama. Selepas ciri atau pembetulan selesai dan diuji, ia boleh digabungkan kembali ke projek utama. Ini memastikan bahawa projek utama tetap stabil dan membolehkan beberapa pemaju mengendalikan fungsi yang berbeza secara serentak tanpa mengganggu satu sama lain.
- Bagaimana untuk membuat cawangan baru di Git?
Mewujudkan cawangan baru di Git adalah mudah. Anda boleh menggunakan perintah <code>git branch</code> diikuti dengan nama cawangan baru. Sebagai contoh, git branch new_feature
akan membuat cawangan baru yang dipanggil "New_Feature". Untuk beralih ke cawangan ini, anda boleh menggunakan perintah git checkout
seperti berikut: git checkout new_feature
.
- Bagaimana untuk menggabungkan cawangan dalam git?
Gabungkan cawangan dalam git menggunakan perintah git merge
. Sebelum menggabungkan, anda perlu berada di cawangan yang anda mahu bergabung. Sebagai contoh, jika anda ingin menggabungkan cawangan bernama "New_Feature" ke dalam cawangan "Master", anda perlu beralih ke cawangan utama menggunakan git checkout master
dan kemudian gunakan perintah git merge new_feature
.
- Apakah penunjuk cawangan git dan bagaimana ia berfungsi?
penunjuk cawangan git adalah fail yang mengandungi hash sha1 komit yang ditunjukkannya. Apabila anda membuat cawangan baru, Git mencipta penunjuk baru dan menggerakkannya bersama -sama dengan setiap komit baru yang anda buat. Ini membolehkan Git mengesan sejarah projek.
- Bagaimana untuk memadam cawangan dalam git?
Padam cawangan dalam Git menggunakan arahan git branch -d
diikuti dengan nama cawangan. Sebagai contoh, git branch -d old_feature
akan memadam cawangan bernama "Old_Feature". Walau bagaimanapun, jika cawangan mempunyai komit yang tidak digabungkan ke cawangan lain, GIT akan menghalang anda daripada memadam cawangan. Untuk memaksa penghapusan, anda boleh menggunakan pilihan -D
.
- Apakah perbezaan antara penggabungan ke hadapan dan penggabungan tripartit di Git?
Fast forward gabungan dalam git adalah mungkin apabila terdapat laluan linear dari hujung cawangan semasa ke cawangan sasaran. Daripada membuat komit baru, Git menggerakkan penunjuk cawangan semasa ke cawangan sasaran. Sebaliknya, apabila tiada laluan linear, gabungan tripartit digunakan. GIT akan mewujudkan komit baru dengan dua ibu bapa, dengan berkesan menghubungkan kedua -dua cawangan.
- Bagaimana untuk melihat semua cawangan dalam repositori git?
anda boleh melihat semua cawangan dalam repositori git menggunakan perintah <code>git branch</code> tanpa parameter. Ini akan menyenaraikan semua cawangan tempatan. Jika anda juga ingin melihat cawangan jauh, anda boleh menggunakan pilihan -a
seperti berikut: <code>git branch -a</code>.
- Bagaimana untuk menamakan semula cawangan di Git?
Namakan semula cawangan dalam Git menggunakan arahan git branch -m
diikuti oleh nama lama dan baru. Sebagai contoh, git branch -m old_name new_name
akan menamakan semula cawangan "old_name" kepada "new_name".
- Apakah kepala pemisahan dalam git dan bagaimana untuk mengelakkannya?
Kepala yang disebarkan di Git berlaku apabila anda menyemak komit bukannya cawangan. Ini boleh berbahaya kerana apabila anda menyemak ke cawangan lain, sebarang perubahan yang anda buat akan hilang. Untuk mengelakkan ini, pastikan anda sentiasa menyemak cawangan dan bukannya melakukan.
- Bagaimana menyelesaikan konflik apabila menggabungkan cawangan di Git?
Apabila menggabungkan cawangan dalam Git, konflik mungkin berlaku jika bahagian yang sama dari fail yang sama diubah suai di kedua -dua cawangan. GIT akan menandakan fail sebagai "tidak diturunkan", anda perlu menyelesaikan konflik secara manual. Anda boleh melakukan ini dengan membuka fail dalam editor teks, mencari tanda konflik (), dan memutuskan perubahan yang perlu disimpan. Selepas semua konflik diselesaikan, anda boleh menambah fail menggunakan <code>git add
dan menyerahkannya menggunakan git commit
.
Atas ialah kandungan terperinci Lompat Mula Git: Bercabang di Git. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Tinggal maklumat mengenai trend teknologi terkini dengan surat berita pemaju teratas ini! Senarai ini menawarkan sesuatu untuk semua orang, dari peminat AI ke pemaju backend dan frontend yang berpengalaman. Pilih kegemaran anda dan menjimatkan masa mencari rel

Tutorial ini membimbing anda melalui membina saluran paip pemprosesan imej tanpa pelayan menggunakan perkhidmatan AWS. Kami akan membuat frontend next.js yang digunakan pada kluster ECS Fargate, berinteraksi dengan Gateway API, Fungsi Lambda, Bucket S3, dan DynamoDB. Th

Program perintis ini, kerjasama antara CNCF (Yayasan Pengkomputeran Native Cloud), pengkomputeran ampere, equinix metal, dan digerakkan, menyelaraskan ARM64 CI/CD untuk projek GitHub CNCF. Inisiatif ini menangani kebimbangan keselamatan dan prestasi lim


Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

DVWA
Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

Muat turun versi mac editor Atom
Editor sumber terbuka yang paling popular

VSCode Windows 64-bit Muat Turun
Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

Dreamweaver Mac版
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)
