GitHub: dosyaların eski sürümlerinde arama


103

GitHub'ı kullanarak bir depodaki dosyalarımın tüm güncel sürümlerini arayabileceğimi biliyorum. Bununla birlikte, repo dosyalarımın eski sürümlerinde de arama yapmak istiyorum. Örneğin, kodumda get_info () adında bir işleve sahiptim, ancak birkaç sürüm önce sildim, get_info'yu arayıp kodu bulmak mümkün mü? GitHub kullanarak mümkün değilse, git komut satırından mümkün müdür?

DÜZENLE

Git komut satırından bunun nasıl yapılabileceğini gösteren @Mark Longair'e teşekkürler. GitHub'da mümkün değilse, sahip olmak harika bir özellik olurdu.

Yanıtlar:


125

Şu anda, github web sitesinde bir arşiv kodunun tüm geçmişi içinde arama yapmanın mümkün olduğuna inanmıyorum - en yakın olanı yalnızca bu sayfadaki "kod arama" seçeneğiyle bir arşivin mevcut kodu içinde arama yapmaktır .

Ancak, komut satırından, sen tanıtıldı veya kaldırılan hatlar söz herhangi kaydedilmesini bulabilirsiniz get_infoile -Sseçeneği git log. Örneğin:

git log -Sget_info -p

(nb -Sve arama terimi arasında boşluk olmamalıdır )

(ayrıca not: birden fazla kelimeyi aramak için, içine alın '):

git log -S'get info' -p

Bu nedenle, en azından bu, işlevin ilk tanıtıldığı ve onu kaldıran commit'i bulmalıdır. -pYamaları da görebilmeniz için ekledim - eğer çok sayıda işlem yararlı olabilecek işlevden bahseden değişiklikler ortaya çıkarsa. İşlev yalnızca başka bir dalda olsaydı, --alltüm dalları aramak için kullanmak da yararlı olabilir .

Jefromi , aşağıdaki bir yorumda, Git 1.7.4'ün-G bir alternatif olarak bu seçeneği sunacağına işaret ediyor - bu değişiklik, Junio ​​Hamano'nun (git bakımcısı) yeni bir blog gönderisinde özetleniyor: http://gitster.livejournal.com/48191.html


2
Evet, yorumları arayabileceğimi biliyorum, ama kodu aramaya ne dersiniz?
normski

10
-S seçeneği yapar kodda göz - herhangi kaydedilmesini bulur get_infotanıtır taahhüt olduğunu fark bulunur. --grepGünlük mesajlarını arayan seçenek kafanız karışabilir .
Mark Longair

2
@normski: Ve git'in son sürümleri, -Gsabit bir dize yerine bir normal ifade alan benzer bir seçenek ekledi .
Cascabel

@Jefromi: Bundan bahsettiğiniz için teşekkürler - bunu cevaba ekledim, umarım sorun olmaz.
Mark Longair

2
@Anthony Damico: evet, sadece arama dizesini alıntılayın, örneğingit log -S'get info' -p
Mark Longair
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.