Asas-asas Git Branching
Keupayaan untuk bercabang dengan mudah adalah salah satu ciri terbaik Git. Membuat cawangan dalam sistem kawalan versi lain boleh menjadi mahal dari segi keperluan ruang dan pemprosesan. Git bercabang adalah cekap. Oleh itu pengguna lebih cenderung menggunakan cawangan di Git.
Aliran Kerja bercabang
Katakan anda memulakan projek baru yang dipanggil myvideogame. Ia mempunyai satu cabang. Nama lalai dari cawangan awal di Git disebut master. Ia dibuat secara automatik. Mari buat repositori myvideogame Git.
$ mkdir myvideogame$ cd myvideogame
$ git init
Anda telah membuat repositori Git kosong. Mari tambah reka bentuk kami.fail txt dengan beberapa teks di dalamnya.
$ echo "Keputusan Reka Bentuk 1: Tambah Imej" >> reka bentuk.txt$ echo "Reka Bentuk Keputusan 2: Tulis Kod" >> reka bentuk.txt
$ git tambah -A
$ git commit -m "C0: Fail Reka Bentuk Ditambah"
Mari tambahkan beberapa lagi perubahan:
$ echo "Reka Bentuk Keputusan 3: Permainan Uji" >> reka bentuk.txt$ git tambah -A
$ git commit -m "C1: Fail Reka Bentuk yang Diubahsuai"
Sekiranya anda menyemak sejarah, anda akan dapati:
$ git log - talian6a09bd6 C1: Fail Reka Bentuk yang Diubahsuai
5f18d89 C0: Fail Reka Bentuk yang Ditambah
Sekiranya anda memeriksa status Git dan semua cawangan yang dibuat (menggunakan arahan: git branch -a), anda akan melihat:
status $ gitPada tuan cawangan
tiada apa yang perlu dilakukan, direktori kerja bersih
cawangan $ git -a
* tuan
Pada masa ini, anda menghadapi situasi berikut:
Anda telah membuat dua komit di cawangan induk.
Anggaplah, anda telah menemui pepijat dalam ujian permainan anda, tetapi anda tidak mahu mengatasi masalah tersebut di cawangan induk kerana anda belum mahu mengacaukan reka bentuk asalnya. Oleh itu, anda boleh membuat cawangan baru yang disebut bugfix:
Perbaikan pepijat cawangan $ gitSekarang jika anda memeriksa semua cawangan:
cawangan $ git -apembetulan pepijat
* tuan
Sekarang anda telah membuat cawangan baru yang disebut bugfix. Situasi dapat dilihat seperti ini:
Walau bagaimanapun, bintang (*) di sebelah cabang induk bermaksud bahawa anda masih berada dalam induk. Sekiranya anda membuat perubahan, ia masih akan masuk ke cawangan induk. Anda boleh menggunakan perintah checkout untuk menukar cawangan:
Perbaikan pepijat $ git checkoutBeralih ke cawangan 'bugfix'
Anda boleh memeriksa cabang mana yang anda gunakan dengan status atau perintah "branch -a":
status $ gitPada perbaikan bug cawangan
tiada apa yang perlu dilakukan, direktori kerja bersih
cawangan $ git -a
* pembetulan pepijat
tuan
Sekarang, mari kita perbaiki pepijat:
Reka bentuk $ echo "Bug Fix 1" >>.txt$ git tambah -A
$ git commit -m "C2: Bug Dibetulkan 1"
Anda telah mencipta situasi seperti ini:
Cawangan induk tidak mempunyai perubahan C2. Anda boleh mengesahkannya dengan mudah dengan memeriksa sejarah kedua-dua cawangan tersebut.
Pertama, sejarah cawangan perbaikan bug:
status $ gitPada perbaikan bug cawangan
tiada apa yang perlu dilakukan, direktori kerja bersih
$ git log - talian
e8f615b C2: Bug Dibetulkan 1
6a09bd6 C1: Fail Reka Bentuk yang Diubahsuai
5f18d89 C0: Fail Reka Bentuk yang Ditambah
Kemudian anda boleh beralih ke cabang induk dan memeriksa sejarahnya:
$ git master checkoutBeralih ke cawangan 'tuan'
status $ git
Pada tuan cawangan
tiada apa yang perlu dilakukan, direktori kerja bersih
$ git log - talian
6a09bd6 C1: Fail Reka Bentuk yang Diubahsuai
5f18d89 C0: Fail Reka Bentuk yang Ditambah
Anda dapat melihat cawangan induk tidak mempunyai perubahan dari cawangan perbaikan bug.
Anda sentiasa boleh membuat cawangan baru dari cawangan semasa anda berada. Katakan, anda ingin membuat cabang lain yang akan mengandungi ciri eksperimen. Anda boleh membuat cabang dari master dan menambahkan ciri eksperimen kepadanya:
status $ gitPada tuan cawangan
tiada apa yang perlu dilakukan, direktori kerja bersih
eksperimen cawangan $ git
eksperimen $ git checkout
Beralih ke cabang 'eksperimental'
status $ git
Pada percubaan cabang
tiada apa yang perlu dilakukan, direktori kerja bersih
$ echo "Menambah ciri Eksperimen" >> reka bentuk.txt
$ git tambah -A
$ git commit -m "C3: Menambah Ciri Eksperimen"
[eksperimental 637bc20] C3: Menambah Ciri Eksperimen
1 fail diubah, 1 sisipan (+)
Sekiranya anda menyemak sejarah cabang eksperimen anda, anda akan melihat:
status $ gitDi percubaan cabang
tiada apa yang perlu dilakukan, direktori kerja bersih
$ git log - talian
637bc20 C3: Menambah Ciri Eksperimen
6a09bd6 C1: Fail Reka Bentuk yang Diubahsuai
5f18d89 C0: Fail Reka Bentuk yang Ditambah
Anda akan melihat bahawa anda tidak mempunyai komit C2 yang dibuat di cawangan bugfix. Oleh kerana cabang eksperimen dibuat dari cabang induk, ia tidak dapat melihat perbaikan bug berubah. Anda menghadapi situasi berikut:
Kesimpulannya
Selamat bertunang! Anda telah belajar cara bercabang.
Cawangan git mudah dan cepat dibuat. Itulah salah satu sebab di sebalik populariti Git. Sekiranya anda ingin menjadi pengguna Git yang mahir, anda perlu menjadi mahir dalam percabangan Git.
Sambung belajar:
https: // git-scm.com / book / en / v2 / Git-Branching-Basic-Branching-and-Merging