Bukan di repositori Git , melainkan di GitHub secara khusus - bagaimana cara mencari hanya pesan komit dari repositori / cabang tertentu?
328
Bukan di repositori Git , melainkan di GitHub secara khusus - bagaimana cara mencari hanya pesan komit dari repositori / cabang tertentu?
Jawaban:
Pada 2017 ini merupakan fungsi yang termasuk dalam GitHub itu sendiri .
Contoh pencarian yang digunakan oleh mereka adalah
repo:torvalds/linux merge:false crypto policy
sumber
Anda dulu bisa melakukan ini, tetapi GitHub menghapus fitur ini di beberapa titik pertengahan 2013. Untuk mencapai ini secara lokal, Anda dapat melakukan:
(Gunakan
-g
bendera jika Anda ingin mencari cabang lain dan menggantung komit.)sumber
-g
tanda untuk kasus penggunaan yang paling umum. Saya belum melihat terlalu banyak tentang hal ini, tetapi dengan-g
, pencarian tampaknya kembali hanya satu bulan.git log -g --grep=fix
sementara didevelop
cabang repo yang memiliki ~ 8000 komitmen mencakup dua tahun, hanya berjalan sejauh 2 Februari.-g
bendera.Pembaruan (2017/01/05):
GitHub telah menerbitkan pembaruan yang memungkinkan Anda sekarang untuk mencari di dalam pesan komit dari dalam UI mereka. Lihat posting blog untuk informasi lebih lanjut.
Saya memiliki pertanyaan yang sama dan menghubungi seseorang GitHub kemarin:
Karena mereka mengganti mesin pencarian mereka ke Elasticsearch, tidak mungkin untuk mencari pesan komit menggunakan UI GitHub. Tetapi fitur itu ada di wishlist tim.
Sayangnya tidak ada tanggal rilis untuk fungsi itu sekarang.
sumber
Jawaban singkatnya adalah, Anda tidak dapat mencari pesan komit langsung di situs web github.com. Untuk saat ini kami merekomendasikan
git grep
solusi lokal yang diajukan orang lain pada utas ini.Pada satu titik waktu GitHub memang menawarkan
git grep
pencarian gaya atas pesan komit untuk repositori tunggal. Sayangnya, pendekatan ini mengekspos penolakan layanan yang dapat membuat server file tidak dapat diakses. Karena alasan ini, kami menghapusgit grep
pencarian.Perkiraan back-of-the envelope saat ini menempatkan jumlah komitmen di GitHub sekitar 80 miliar. Meskipun teknisi Google tertawa di belakang kami, ini adalah sejumlah besar dokumen untuk disimpan di ElasticSearch. Kami ingin membuat dataset ini dapat dicari, tetapi ini bukan proyek sepele.
sumber
git diff's
(artinya isi dari komit, bukan metadata komit)Ini dihapus dari GitHub. Saya menggunakan:
Anda juga dapat memfilter menurut penulis:
sumber
Dari halaman bantuan tentang pencarian kode , sepertinya ini belum memungkinkan.
Anda dapat mencari teks di repositori Anda, termasuk kemampuan untuk memilih file atau jalur untuk mencari, tetapi Anda tidak dapat menentukan bahwa Anda ingin mencari dalam komit.
Mungkin menyarankan ini kepada mereka ?
sumber
Anda dapat melakukan ini dengan repositori yang telah dirayapi oleh Google (hasil bervariasi dari repositori ke repositori).
Cari semua cabang dari semua repositori yang dirayapi untuk "ubah lisensi"
Cari cabang master dari semua repositori rayapan untuk "ubah lisensi":
Cari cabang utama dari semua repositori twitter yang dirayapi untuk "ubah lisensi"
Cari semua cabang repositori twitter / some_project untuk "ubah lisensi"
sumber
Perbarui Januari 2017 (dua tahun kemudian):
Anda sekarang dapat mencari pesan komit ! (masih hanya di cabang master)
Februari 2015: Tidak yakin itu mungkin, mengingat basis infrastruktur pencarian saat ini di Elasticsearch (diperkenalkan pada Januari 2013 ).
Sebagai jawaban "menarik dari sumber yang kredibel dan / atau resmi", berikut adalah wawancara yang dilakukan dengan orang-orang GitHub yang bertugas memperkenalkan Elasticsearch di GitHub (Agustus 2013)
Itu semua berarti tidak semua cabang dari semua repo akan diindeks dengan pendekatan itu.
Pencarian pesan komit global tidak tersedia untuk saat ini.
Dan Tim Pease sendiri mengkonfirmasi pesan komit tidak diindeks .
Perhatikan bahwa tidak mungkin mendapatkan pengindeksan lokal elasticsearch sendiri dari klon lokal: lihat " Mencari repositori git dengan ElasticSearch "
Tetapi untuk repo tertentu, yang paling mudah adalah tetap mengkloningnya dan melakukan:
(Opsi lainnya di " Bagaimana cara mencari repositori Git dengan mengkomit pesan? ")
sumber
Karena ini telah dihapus dari GitHub, saya telah menggunakan
gitk
Linux untuk melakukan ini.Dari terminal buka repositori Anda dan ketik
gitk
.Di tengah GUI, ada kotak pencarian. Ini memberikan pilihan filter yang baik:
Lingkup - mengandung, menyentuh jalur, menambah / menghapus string, mengubah pencocokan garis
Jenis pencocokan - Exact / IgnCase / Regexp
Bidang pencarian - Semua bidang / Judul / Komentar / Pengganti
sumber
Ini berfungsi baik dari dalam Eclipse , hingga GitHub menambahkan fitur:
EGit / Panduan Pengguna, Mencari komitmen
sumber
Jika Anda memiliki versi lokal repositori, Anda mungkin ingin mencoba skrip shell mentah yang saya tulis untuk membuka halaman GitHub untuk semua komit yang cocok dengan istilah pencarian Anda di tab baru di browser default Anda:
Cukup ganti
https://github.com/RepoOwnerUserName/RepoName/
dengan URL GitHub aktual dari repositori Anda, simpan skripnya di suatu tempat (misalnyagithubsearch.sh
, buatlah itu dapat dieksekusi (chmod +x githubsearch.sh
) dan kemudian tambahkan alias berikut ke~/.bashrc
file Anda :Lalu, dari mana saja di repositori Git Anda, lakukan saja ini di terminal:
dan komitmen apa pun yang cocok dengan istilah pencarian Anda (tidak peka huruf besar kecil) akan memiliki halaman GitHub yang sesuai dibuka di browser Anda. (Berhati-hatilah bahwa jika istilah pencarian Anda muncul dalam ratusan komit, ini dapat merusak browser Anda dan memakan CPU PC Anda untuk sementara waktu.)
sumber
Pada pertengahan 2019, ketikkan saja apa pun yang ingin Anda cari di kotak pencarian kiri atas dan kemudian klik "Komit."
sumber