Dalam pelajaran ini, kita akan melakukan hal berikut:
- Buat repositori jarak jauh
- Buat salinan lokal dari repositori jarak jauh
- Buat dua cabang di salinan lokal
- Dorong satu cabang ke repositori jarak jauh
- Hapus cabang lokal
- Hapus cabang jarak jauh
Pelajaran ini akan memberi Anda pemahaman menyeluruh tentang proses pembuatan dan penghapusan cabang, sehingga Anda memiliki perintah yang baik atas langkah-langkah yang diperlukan saat Anda perlu menghapus cabang lokal atau jarak jauh.
Mari kita mulai.
1. Membuat Repositori Jarak Jauh
Mari kita buat folder bernama proyek.git dan inisialisasi menjadi repositori jarak jauh:
$ mkdir proyek.gitproyek $cd.git
$ git init -bare
Repositori Git kosong yang diinisialisasi di /Users/zak/_work/LearnGIT/git_delete_branch/project.git/
2. Membuat Salinan Lokal dari Repositori Jarak Jauh
Di lokasi baru, mari buat salinan lokal bernama project_local dari repositori jarak jauh menggunakan perintah clone.
Catatan: Jika Anda bekerja dengan GitHub atau BitBucket, Anda akan mengikuti proses yang sama untuk mengkloning repositori. Dalam hal ini, Anda akan memiliki tautan SSH alih-alih jalur file lengkap yang digunakan di sini.
$ git clone /Users/zak/_work/LearnGIT/git_delete_branch/project.git project_localKloning ke 'project_local'…
peringatan: Anda tampaknya telah mengkloning repositori kosong.
selesai.
3. Membuat Cabang Di Dalam Salinan Lokal
Pertama-tama mari kita tambahkan file ke salinan lokal dan kemudian dorong ke repositori jarak jauh:
$ cd project_local$ sentuh ReadMe.txt
$ git tambahkan -A
$ git commit -m "Menginisialisasi Modul"
[master (root-commit) 81eb2a3] Menginisialisasi Modul
1 file diubah, 0 penyisipan (+), 0 penghapusan (-)
buat mode 100644 ReadMe.txt
$ git push asal master origin
Menghitung benda: 3, selesai.
Objek penulisan: 100% (3/3), 221 byte | 0 byte/dtk, selesai.
Total 3 (delta 0), digunakan kembali 0 (delta 0)
Ke /Users/zak/_work/LearnGIT/git_delete_branch/project.git
* [cabang baru] master -> master
Dalam perintah di atas, kami membuat file bernama ReadMe.txt, menambahkannya ke salinan lokal, mengkomitnya ke salinan lokal, dan kemudian mendorong perubahan ke repositori jarak jauh atau cabang master Asal.
Jika Anda memeriksa cabang, Anda akan melihat cabang master di salinan lokal:
$git cabang* tuan
Jika Anda memeriksa cabang jarak jauh, Anda juga akan melihat cabang master di sana:
$ git cabang -rasal/master
Petunjuk: Anda dapat menggunakan opsi '-a' untuk melihat semua cabang di repositori lokal dan remote secara bersamaan.
$ git cabang -a* tuan
remote/asal/master
Mari buat dua cabang yang disebut b1 dan b2 dari cabang master:
$ git cabang b1$ git cabang b2
Mari kita periksa apakah cabang telah dibuat:
$git cabangb1
b2
* tuan
Sekarang kita akan membuat beberapa modifikasi pada cabang:
$ git checkout b1Beralih ke cabang 'b1'
$ sentuh cabang1.txt
$ git tambahkan -A
$ git commit -m "Modifikasi Cabang1"
[b1 a2f488e] Modifikasi Cabang1
1 file diubah, 0 penyisipan (+), 0 penghapusan (-)
buat mode 100644 cabang1.txt
$ git checkout b2
Beralih ke cabang 'b2'
$ sentuh cabang2.txt
$ git tambahkan -A
$ git commit -m "Modifikasi Cabang2"
[b2 2abb723] Modifikasi Cabang2
1 file diubah, 0 penyisipan (+), 0 penghapusan (-)
buat mode 100644 branch2.txt
Mari kita periksa status cabang lokal dan jarak jauh:
$git cabangb1
* b2
menguasai
$ git cabang -r
asal/master
Kita dapat melihat secara lokal kita memiliki tiga cabang master, b1, dan b2. Tetapi kami hanya memiliki cabang master di repositori jarak jauh.
4. Mendorong Cabang ke Repositori Jarak Jauh
Mari dorong cabang b1 ke repositori jarak jauh:
$ git push asal b1Menghitung objek: 2, selesai.
Kompresi delta menggunakan hingga 4 utas.
Mengompresi objek: 100% (2/2), selesai.
Objek penulisan: 100% (2/2), 249 byte | 0 byte/dtk, selesai.
Total 2 (delta 0), digunakan kembali 0 (delta 0)
Ke /Users/zakh/_work/LearnGIT/git_delete_branch/project.git
* [cabang baru] b1 -> b1
Anda dapat memeriksa status cabang lokal dan jarak jauh:
$git cabangb1
* b2
menguasai
$ git cabang -r
asal/b1
asal/master
Dari status cabang di atas, kita dapat melihat bahwa cabang b1 juga tersedia dari jarak jauh.
5. Menghapus Cabang Secara Lokal
Anda dapat menghapus cabang secara lokal dengan opsi -d atau -D.
git cabang -dMari kita periksa dulu ke cabang master, jadi kita bisa menghapus cabang b1 dan b2.
$git checkout master checkoutBeralih ke cabang 'master'
Cabang Anda mutakhir dengan 'Origin/master'.
Mari kita coba opsi -d terlebih dahulu untuk menghapus cabang b1:
$ git cabang -d b1kesalahan: Cabang 'b1' tidak sepenuhnya digabungkan.
Jika Anda yakin ingin menghapusnya, jalankan 'git branch -D b1'.
Kesalahannya memberi tahu Anda bahwa Anda harus menggabungkan perubahan dari cabang b1. Ini adalah perlindungan, jadi Anda tidak salah kehilangan pekerjaan di cabang. Anda dapat menggunakan opsi -D untuk memaksa menghapus gabungan. Tetapi dalam kasus ini, mari gabungkan perubahan dari b1 dan b2 menjadi master dan dorong ke repositori jarak jauh.
$ git menggabungkan b1Memperbarui 81eb2a3… a2f488e
Maju cepat
cabang1.txt | 0
1 file diubah, 0 penyisipan (+), 0 penghapusan (-)
buat mode 100644 cabang1.txt
$ git menggabungkan b2
Gabung yang dibuat oleh strategi 'rekursif'.
cabang2.txt | 0
1 file diubah, 0 penyisipan (+), 0 penghapusan (-)
buat mode 100644 cabang2.txt
$ git push asal master origin
Menghitung objek: 4, selesai.
Kompresi delta menggunakan hingga 4 utas.
Mengompresi objek: 100% (4/4), selesai.
Objek penulisan: 100% (4/4), 454 byte | 0 byte/dtk, selesai.
Total 4 (delta 1), digunakan kembali 0 (delta 0)
Ke /Users/zak/_work/LearnGIT/git_delete_branch/project.git
81eb2a3… 34db496 master -> master
Sekarang coba hapus cabang lagi:
$git cabangb1
b2
* tuan
$ git cabang -d b1
Cabang yang dihapus b1 (sebelumnya a2f488e).
$ git cabang -d b2
Cabang b2 yang dihapus (sebelumnya 2abb723).
$git cabang
* tuan
Anda telah berhasil menghapus cabang b1 dan b2 secara lokal.
6. Menghapus Cabang Jarak Jauh
Saat Anda memeriksa cabang jarak jauh, Anda masih melihat b1 hadir:
$ git cabang -rasal/b1
asal/master
Anda dapat menggunakan perintah berikut untuk menghapus cabang jarak jauh:
git pushJadi Anda dapat menghapus cabang b1 jarak jauh dengan yang berikut:
$ git Push asal --hapus b1Ke /Users/zakh_eecs/_work/LearnGIT/git_delete_branch/project.git
- [dihapus] b1
Sekarang jika Anda memeriksa cabang jarak jauh Anda, Anda seharusnya tidak melihat b1 lagi:
$ git cabang -rasal/master
Selamat! Anda telah berhasil menghapus semua cabang yang Anda buat. Berlatih membuat lebih banyak cabang dan menghapusnya untuk menguasai proses penghapusan cabang Git.
Pelajaran lanjutan:
- https://git-scm.com/book/en/v1/Git-Branching-What-a-Branch-Is
- https://git-scm.com/book/en/v2/Git-Branching-Branches-in-a-Singkatnya
- https://git-scm.com/book/en/v2/Git-Branching-Basic-Branching-and-Merging