Bagaimana cara mendaftar semua tag yang mengandung komit?


227

Pertanyaan ini mirip dengan Cara daftar semua tag yang menunjuk ke komit tertentu di git , tetapi dengan satu perbedaan: Saya ingin mencari semua tag yang berisi komit tertentu di dalam pohon setiap tag, tidak secara khusus file yang ditandai dalam tag sendiri (dalam hal ini, hanya perubahan Makefile yang telah ditandai).


1
Anda tidak dapat menandai file tertentu - tag hanya menunjukkan komit. Anda mungkin ingin mengedit pertanyaan Anda dengan lebih detail masalah yang Anda benar-benar coba selesaikan.
Mark Longair


Catatan: pada Windows, pastikan untuk menggunakan git 2.0.x (2014) jika Anda ingin git tag --containsuntuk tidak crash. Lihat jawaban saya di bawah ini
VonC

Jawaban:


348
git tag --contains <commit>

2
Saya sudah mencoba ini. Tetapi jika tag hanya berisi satu file, saya percaya itu hanya mencari melalui file itu. Itu tidak akan mencari pohon. Juga, repositori yang saya coba adalah git yang sangat besar ditebus dan mendapatkan SIGKILL'ed.
atx

21
Tag tidak mengandung file. Mereka hanya penanda untuk komit. Mengingat itu, saya pikir keberatan Anda tidak masuk akal.
amalloy

Itu tidak boleh menunjukkan kepada saya komit karena kurangnya memori dalam kasus itu. Apakah Anda tahu bagaimana saya bisa mengatasi ini?
atx

5
Apakah ada cara untuk melakukan ini terhadap tag jarak jauh? Mirip dengan cabang:git branch -r --contains <commit>
Mike

23

Perhatikan bahwa Anda memerlukan git 2.0.x (Q3 2014) untuk mendaftar semua tag untuk komit tertentu jika Anda memiliki repo besar

Lihat commit cbc60b6 oleh Jean-Jacques Lafay (lanfeust69 ) :

git tag --contains: hindari stack overflow

Dalam repo besar, implementasi rekursi dari PT contains(commit, commit_list) dapat menghasilkan stack overflow. Ganti rekursi dengan loop untuk memperbaikinya.

Masalah ini lebih jelas pada Windows daripada di Linux, di mana tumpukan lebih terbatas secara default.

Lihat juga utas ini pada daftar msysGit .


9
Tidak ada permainan kata-kata yang dimaksudkan? ;-)
MikeSchinkel

3
@ MikeSinkink Yah ... setidaknya bukan yang disengaja .
VonC

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.