Git

Asas Cawangan Git

Asas Cawangan Git

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 - talian
6a09bd6 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 $ git
Pada 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 $ git

Sekarang jika anda memeriksa semua cawangan:

cawangan $ git -a
pembetulan 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 checkout
Beralih ke cawangan 'bugfix'

Anda boleh memeriksa cabang mana yang anda gunakan dengan status atau perintah "branch -a":

status $ git
Pada 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 $ git
Pada 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 checkout
Beralih 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 $ git
Pada 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 $ git
Di 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

Cara Membangunkan Permainan di Linux
Satu dekad yang lalu, tidak banyak pengguna Linux akan meramalkan bahawa sistem operasi kegemaran mereka suatu hari nanti akan menjadi platform permai...
Port Sumber Terbuka Mesin Permainan Komersial
Rekreasi enjin permainan sumber terbuka dan bebas platform boleh digunakan untuk bermain lama dan juga beberapa tajuk permainan yang baru-baru ini. Ar...
Permainan Perintah Terbaik untuk Linux
Baris perintah bukan hanya sekutu terbesar anda ketika menggunakan Linux-ia juga dapat menjadi sumber hiburan kerana anda dapat menggunakannya untuk m...