Haruskah saya menyimpan repositori bercabang GitHub saya selamanya?

314

Jadi saya telah memotong repositori orang lain, membuat beberapa perubahan, mengirimkan permintaan tarik, dan perubahan saya membuatnya menjadi produk. Bagus!

Tapi ... apa yang harus saya lakukan dengan repositori bercabang saya? Apakah ada alasan kuat bagi saya untuk menyimpan repositori saya, atau haruskah saya melanjutkan dan menghapusnya? Saya tidak berencana untuk memberikan kontribusi tambahan, tetapi jika saya berubah pikiran, saya berasumsi bahwa saya selalu dapat memotongnya kembali.

Saya tidak benar-benar khawatir tentang menyimpan cadangan. Saya lebih khawatir tentang putus tautan, kehilangan pesan komit, dll.

Brant Bobby
sumber
80
Silakan hapus atau github akan kehabisan hash.
Armand
3
kode duplikat itu jahat. Dan itu juga melewati batas git.
stijn
7
@stijn - Saya membaca ini lebih sebagai "cadangan" daripada "duplikat". Dan saya rasa saya tidak pernah mendengar ada yang berpendapat bahwa kode cadangan itu jahat ...
Beekguk
3
Hapus. Lagipula, Anda selalu dapat mengunduh status terakhir (yang merupakan hal yang ingin tetap Anda jalani) dari repo proyek.
Benteng
Apa yang terjadi jika repo asli dihapus dan tidak ada yang memiliki garpu yang tersisa? Bagaimana cara mendapatkan kembali akses ke repo / fork dalam kasus itu?
Kromster

Jawaban:

40

Menghapus repositori bercabang akan menghapus riwayat dari Permintaan Tarik Anda.

PR dengan repositori tidak dikenal

Menghapus repositori bercabang akan menghapus semua informasi yang terkait dengan repositori Anda. Ini secara retroaktif dapat mempengaruhi referensi ke repositori Anda, termasuk menarik permintaan yang telah digabungkan. (Lihat Tarik permintaan menampilkan "repo tidak dikenal" setelah penghapusan garpu )

Komentar dan komitmen Anda harus dipertahankan pada setiap permintaan penarikan yang dikaitkan dengan repositori Anda, tetapi Anda akan melakukannya dengan risiko Anda sendiri.

Namun, menghapus cabang lama setelah penggabungan sangat aman.

Meskipun menghapus repositori harus dihindari, menghapus cabang yang tidak digunakan sangat dapat diterima. Bahkan, GitHub menganjurkan Anda untuk menghapus cabang lama .

Merapikan setelah Tarik Permintaan

Di GitHub, kami senang menggunakan Pull Requests sepanjang hari, setiap hari. Satu-satunya masalah adalah bahwa kita berakhir dengan banyak cabang mati setelah Permintaan Tarik telah digabung atau ditutup. Dari waktu ke waktu, salah satu dari kami akan membersihkan cabang-cabang ini dengan sebuah skrip, tetapi kami pikir akan lebih baik untuk menjaga langkah ini sebagai bagian dari alur kerja reguler kami di GitHub.com.

Mulai hari ini, setelah Permintaan Tarik digabungkan, Anda akan melihat tombol untuk menghapus cabang yang tersisa:

Hapus tombol cabang ini

Jika Permintaan Tarik ditutup tanpa digabung, tombolnya akan tampak sedikit berbeda untuk memperingatkan Anda tentang menghapus komitmen yang tidak digabungkan:

Hapus cabang dengan peringatan

Tentu saja, Anda hanya dapat menghapus cabang di repositori yang memiliki akses push.

Nikmati repositori rapi Anda!

Atau, jika Anda benar-benar tidak ingin menyimpannya, Anda dapat mengarsipkan repositori untuk menunjukkan bahwa repositori tersebut tidak lagi dikelola secara aktif.

Lihat juga

Stevoisiak
sumber
1
Apa yang sebenarnya terjadi pada permintaan tarikan tertutup tanpa penghilangan ketika Anda menghapus cabang mereka (kasus kedua dalam artikel yang dikutip)? Akankah komit masih tersedia dalam permintaan tarik, hanya tanpa riwayatnya, atau akankah mereka sepenuhnya hilang?
salah ketik
2
@ tipo Menurut dokumentasi GitHub, " Anda tidak dapat menghapus cabang yang terkait dengan permintaan tarikan terbuka. "
Stevoisiak
207

Jika permintaan tarik Anda diterima dan Anda belum melakukan perubahan lain yang mungkin Anda gunakan secara pribadi, Anda harus menghapusnya.

  1. Menghapus tidak membahayakan apa pun.
  2. Anda selalu dapat mengisi ulang jika perlu
  3. Ini mengurangi repo yang tidak berguna dalam hasil pencarian ketika orang mencari sesuatu
  4. Jika Anda menggunakan GitHub sebagai semacam resume untuk pekerjaan / kontrak potensial, akan terlihat lebih baik jika Anda tidak memiliki lusinan repo bercabang yang saat ini tidak Anda kerjakan. Anda akan terlihat lebih efisien.
  5. Ini membantu kewarasan Anda sendiri ketika Anda tidak perlu mencari ratusan repo yang tidak berguna.
  6. Lebih baik untuk GitHub. :)
tharris
sumber
50
Satu-satunya downside ke ini adalah bahwa permintaan tarik kemudian akan menampilkan "bergabung komit <commit> menjadi <repo>dari unknown repositorypada <tanggal>", yang agak aneh.
PLPeters
18
@PLPeeters, Sebenarnya itu adalah kerugian yang cukup besar.
Pacerier
4
Saya sarankan menggunakan remove-github-forksuntuk "Hapus semua garpu yang tidak memiliki komit yang tidak ada di repositori utama." Bekerja seperti pesona.
fregante
3
@SteveMoser Saya mungkin salah, tapi saya pikir Anda masih menyimpan daftar "Repositori yang Anda berkontribusi". Saya punya satu saya menghapus setiap koneksi antara dan itu masih tetap ada di sana entah bagaimana, tetapi mungkin kebetulan: P
Mark Pieszak - Trilon.io
17
Saya mengambil risiko dan menghapus repositori bercabang dua dan daftar kontribusi saya tidak terpengaruh sehingga saya dapat dengan aman mengatakan bahwa menghapus repo bercabang tidak akan mempengaruhi kredit kontribusi Anda
Amin Mohamed Ajani
76

Anda dapat menghapus garpu Anda segera setelah mengajukan Permintaan Tarik , terlepas apakah itu digabung atau tidak. GitHub menyimpan semua PR di repositori hulu , yang berarti perubahan yang diusulkan dilacak bahkan jika garpu dihapus.

Itu menyederhanakan keputusan.

Anda mungkin masih ingin menyimpan garpu jika:

  • Anda akan segera berkontribusi lebih banyak (mis. Memperpanjang PR yang ada atau membuka PR baru)

Anda mungkin ingin menghapus garpu jika:

  • Anda ingin portofolio proyek yang bersih dengan nama Anda
Dennis
sumber
7
"Anda dapat menghapus garpu Anda segera setelah mengirim Permintaan Tarik Anda" Ini yang saya cari!
Unnawut
Saya juga, tetapi jawabannya dimulai dengan "Jika permintaan tarik Anda diterima ..." Apakah Anda mencobanya: D
Legends
4
Peringatan : Saat Anda menghapus garpu, nama cabang asli dihapus dari permintaan tarikan yang tertunda. ( Stevoisiak ingin menggabungkan 1 komit Drugoy:masterdariunknown repository )
Stevoisiak
20

Saya mungkin akan tar / gzip dan memasukkan direktori arsip, lalu menghapusnya 3 tahun kemudian. ;) Jujur Jika Anda tidak berniat mengerjakannya lagi selama beberapa bulan ke depan dan belum menggunakannya dalam beberapa saat, saya pikir akan aman untuk menghapusnya.

Zachary K
sumber
9

Hanya untuk menambah jawaban yang disediakan - GitHub sendiri merekomendasikan menghapus ("merapikan") repositori bercabang setelah mereka digabung.

Ini dapat dilakukan tepat di permintaan tarik setelah bergabung - silakan lihat posting blog ini .

Selain itu, pada saat ini, saya tidak melihat kelemahan dalam komentar:

  • bahkan setelah menghapus repositori bercabang, ada pesan yang benar dalam permintaan tarik (tidak ada "repositori tidak dikenal")
  • repositori yang telah Anda kontribusikan masih tercantum dalam aktivitas kontribusi Anda
  • Anda masih terdaftar di kontributor repositori itu

Saya tidak akan merekomendasikan menghapusnya sebelum bergabung seperti yang disarankan oleh @ Dennis, karena Anda mungkin masih harus membuat beberapa modifikasi pada kode jika diminta oleh penulis.

Marius Balčytis
sumber
2
Saya baru saja menghapus repositori bercabang dan permintaan tarik sekarang mengatakan unknown repository. Baiklah.
Krassi
10
Tautan Anda menuju ke artikel yang menjelaskan cara menghapus cabang setelah penggabungan PR berhasil; Namun pertanyaan ini menanyakan tentang menghapus repositori . Anda hanya akan mengamati "repositori yang tidak dikenal" ketika Anda menghapus fork proyek Anda ( repositori ).
stakx
2
Pertanyaannya adalah tentang menghapus garpu, bukan cabang.
Andy