Pertanyaan Penghapusan cabang git


Di Git, apa artinya "penghapusan" cabang?

Apakah akan hilang dari repositori? Atau apakah masih dapat dinavigasi ke via git branch?

Yang benar-benar ingin saya lakukan adalah menandai sebuah cabang sebagai "jalan buntu", yaitu, cabang itu begitu jauh dari tuan, bahwa tidak ada yang harus menggunakannya sebagai titik awal, meskipun ada beberapa ide bagus di cabang itu, jadi kami akan suka menyimpannya, untuk referensi.


76
2018-02-26 15:52


asal


Jawaban:


Anda dapat menghapus cabang, tetapi beri tag terlebih dahulu, agar sejarahnya tidak hilang. Dengan cara ini, cabang tidak muncul di daftar cabang, yang semestinya dapat mencegah orang-orang untuk mengerjakannya, tetapi pekerjaan itu tidak akan dihapus secara permanen (bahkan setelah pengumpulan sampah dijalankan). Misalnya, setiap kali saya memiliki cabang yang menjadi tidak relevan, tetapi saya tidak siap untuk menghapusnya secara permanen, saya menandainya sebagai "arsip / <nama cabang> ".

Saat aktif master atau beberapa cabang lain:

git tag archive/foo foo
git branch -D foo

Ini membuat tag bernama archive/foo dari foo cabang sebelum menghapus foo. Anda juga dapat menambahkan pesan ke tag, yang menjelaskan apa yang ada di cabang, mengapa ada, mengapa sekarang buntu, dll.

git tag -m 'Foo is deprecated in favor of bar' archive/foo foo

Kemampuan untuk merekam mengapa cabang tidak lagi digunakan mungkin merupakan keuntungan dari penandaan dibandingkan memindahkan cabang ke ruang nama alternatif.

Jika Anda perlu menghidupkan kembali cabang yang telah diarsipkan dengan cara ini, itu sesederhana:

git branch foo archive/foo
git tag -d archive/foo       # Optional

Sekarang cabang kembali seolah-olah tidak pernah dihapus.


152
2018-02-26 18:06



Cabang Git disimpan sebagai referensi ke revisi. Jika Anda menghapus cabang, referensi dihapus; jika tidak ada referensi lain yang direvisi, akhirnya akan menjadi sampah yang dikumpulkan. Juga, jika Anda menghapus cabang maka itu sudah hilang (dari repositori Anda). Jika Anda ingin menandai cabang sebagai tidak digunakan lagi tetapi menyimpannya untuk digunakan nanti, Anda dapat memindahkan cabang ke subdirektori:

$ git branch
* master
  testing_feature_one
  testing_feature_two
$ git branch -m testing_feature_one deprecated/testing_feature_one
$ git branch
  deprecated/testing_feature_one
* master
  testing_feature_two

Sebagai alternatif, Anda dapat membuat repositori terpisah untuk cabang-cabang yang tidak digunakan lagi, menariknya ke seberang lalu menghapusnya dari aslinya. Dalam kedua kasus, Anda akan mempengaruhi setiap pengguna yang mengikuti cabang - konten repositori mereka tidak akan berubah (dan tidak akan ada nama cabang mereka), tetapi jika mereka mencoba untuk menarik lagi, mereka akan harus mengubah target mereka dalam konfigurasi mereka.


2
2018-02-26 16:15



git branch -D <branchName> akan menghapus cabang Anda dari repositori. Anda tidak akan dapat melihatnya atau menavigasi lagi. Juga Anda akan kehilangan semua perubahan file yang dibuat di cabang itu.

https://git-scm.com/docs/git-branch


2
2018-02-26 15:55



Ini tidak dapat dilayari melalui cabang git dan sampai pengumpulan sampah dilakukan, itu tidak akan hilang dari repositori.

Jika Anda ingin menandai cabang yang dipertanyakan sebagai jalan buntu, maka lakukan saja (git mungkin tidak melakukan ini untuk Anda tetapi Anda pasti bisa)!

Memberi label (dengan cara apa pun yang Anda inginkan) sebagai referensi historis berfungsi.


0
2018-02-26 16:29