Haruskah saya menghapus cabang setelah menggabungkannya?

94

Setelah menggabungkan cabang, apakah Anda menghapusnya dari repositori?
Namun, ini praktik yang baik atau tidak?

Saya biasanya membuat banyak cabang, karena saya tidak ingin merusak rilis saya saat ini, dan saya ingin menghapusnya untuk menjaga semuanya tetap teratur.
Namun, jika Anda bekerja dengan Assembla atau GitHub, permintaan penggabungan Anda dari cabang lama akan disimpan di situs, jadi jika Anda menghapusnya, Anda akan mendapatkan kesalahan karena tidak dapat mengambilnya ...

Biasanya bagaimana cara mengaturnya?

tampe125
sumber

Jawaban:

73

Tidak ada masalah dalam menghapus cabang yang telah digabungkan. Semua komit masih tersedia di riwayat, dan bahkan di antarmuka GitHub, mereka masih akan muncul (lihat, misalnya, PR ini yang mengacu pada percabangan yang saya dihapus setelah PR diterima).

Fred Foo
sumber
Anda mengatakan bahwa semua komitmen masih tersedia di riwayat. Jika saya melihat proyek di github.com, saya menemukan bahwa ini benar. Namun, di aplikasi desktop Github untuk Mac, tampaknya Anda tidak dapat lagi melihat riwayat komit untuk cabang yang digabungkan. Apakah saya salah
peacetype
Saya akan menambahkan bahwa jika Anda tidak menggunakan klien git, terutama yang tidak menggunakan klien dengan gui, maka memiliki cabang dapat membantu untuk memahami log Anda dengan baik. Artinya, karena Anda tidak memiliki github / gitlab / gui lain untuk dilihat, menyimpan nama cabang memungkinkan Anda memiliki tempat sederhana untuk mereferensikan riwayat selain melakukan riwayat - yang jika tidak akan hilang dengan menghapus cabang. Seseorang tolong beri tahu saya jika pernyataan terakhir ini salah.
Raj
@Raj Anda sudah memilikinya, dalam bentuk Merge branch fix-foo-barpesan komit. Coba git log --grep="Merge branch", lalu jatuhkan jangkar minat Anda sendiri melalui git checkout -b curious-change. Juga, tidak ada yang hilang saat menghapus sebuah cabang - kecuali hanya pointer "branchname → commithash" (yang merupakan cabang sebenarnya, tidak masalah lokal atau jarak jauh).
ulidtko
@ fred-foo Pertanyaan apakah ini praktik yang baik belum terjawab. (Saya memiliki pertanyaan yang sama)
Esger
27

Saya pasti membersihkan cabang saya setelah mereka bergabung.

Kami menggunakan GitLab dan menggabungkan permintaan di tempat kerja, sehingga informasi historis tentang cabang disimpan di sana; Saya tidak perlu mereka mengacaukan daftar cabang saya, dan ketika saya melihat garpu rekan kerja, idealnya saya hanya ingin melihat cabang dari perkembangan aktif mereka saat ini. Jika saya mencoba melihat beberapa kode di cabang mereka, saya ingin dapat melihat hanya melalui beberapa cabang yang saat ini aktif, dan tidak setiap fitur atau perbaikan yang pernah mereka mulai kerjakan.

Hal di atas juga berlaku untuk BitBucket dan GitHub.

Satu-satunya alasan Anda mungkin tidak menghapus cabang pasca-penggabungan adalah agar Anda tahu di mana fitur yang diberikan berakhir, tetapi menggabungkan komit (dan git merge --no-ffjika Anda benar-benar menginginkannya) membuatnya tidak relevan.

Asherah
sumber
3
Rupanya GitHub selalu melakukannya --tidak-ff jadi kami tidak akan kehilangan fakta bahwa ini adalah cabang bahkan dalam situasi itu.
joeytwiddle
7
@joeytwiddle: dengan asumsi Anda menggunakan antarmuka GitHub sendiri untuk menggabungkan cabang, ya!
Asherah
0

Hanya untuk memperjelas, cabang, dari sudut pandang git, hanya menautkan ke beberapa komit. Dengan menghapus cabang, Anda tidak akan menghapus komit dari git repo. Tentu saja, komit yang terlepas akan dibersihkan setelah beberapa saat melalui pengumpul sampah git.

FYI: Kami biasanya menggabungkan cabang menjadi master melalui antarmuka bitbucket. Di sana Anda dapat mengatur delete feature branch after mergebendera.

Jika Anda perlu berurusan dengan cabang yang terlalu lama, Anda dapat melihat beberapa utilitas, misalnya yang ini .

AGrigorii
sumber