Uzak bir depoda bir şubenin işlem geçmişine erişmeye çalışıyorum. Ben bir göz vardı doc ama benim yerel git istemcisi kullanarak tarihini işlemek uzak repo erişmek için nasıl kayda değer bir bilgi bulamadık.
Uzak bir depoda bir şubenin işlem geçmişine erişmeye çalışıyorum. Ben bir göz vardı doc ama benim yerel git istemcisi kullanarak tarihini işlemek uzak repo erişmek için nasıl kayda değer bir bilgi bulamadık.
Yanıtlar:
git log remotename/branchname
Bu depodaki belirli bir uzak dalın günlüğünü görüntüler, ancak yalnızca depolarından uzak deponun kişisel "kopyasına" "getirdiğiniz" günlükleri görüntüler.
Depo klonunuzun, uzak dallardaki durumunu yalnızca yaparak güncelleyeceğini unutmayın git fetch
. Buradaki günlüğü kontrol etmek için doğrudan sunucuya bağlanamazsınız, yaptığınız şey sunucunun durumunu indirip git fetch
uzak dalların günlüğünü yerel olarak görmek.
Belki başka bir yararlı komut şunlar olabilir:
git log HEAD..remote/branch
bu size uzak dalda olan ancak geçerli dalınızda ( HEAD
) olmayan taahhütleri gösterir .
git fetch
için kullanmanız gerekir --all
.
NB. Aşağıdaki "orijin", klonlanmış bir deponun yukarı akışını temsil etmek için kullanılır, "orijin" yi uzak repo için açıklayıcı bir adla değiştirin. "uzaktan başvuru" klon komutunda kullanılan biçimi kullanabilir.
git remote add origin <remote reference>
git fetch
git log origin/master
git://git.somedomain.tld/some/repo
<refspec>
getirirken (veya kullanırken fetch --all
) belirtmeniz gerekmez mi?
Günlüğü yalnızca yerel bir depoda görüntüleyebilirsiniz, ancak bu, ayarladığınız tüm uzaktan kumandaların getirilen dallarını içerebilir.
Bir repoyu klonlarsan ...
git clone git@gitserver:folder/repo.git
Bu varsayılan olarak ayarlanacaktır origin/master
.
Bu repoya ekleyelim dışında bir uzaktan kumanda origin
ekleyebilirsiniz production
. Yerel klon klasörü içinden:
git remote add production git@production-server:folder/repo.git
Günlüğü görmek production
istersek yapmamız gerekecek:
git fetch --all
Bu TÜM uzaktan kumandalardan getirilir (olmadan varsayılan --all
getirme sadece getirilir origin
)
Getirdikten sonra production
uzaktan kumandadaki günlüğe bakabiliriz , dalı da belirtmeniz gerekir.
git log production/master
Tüm seçenekler yerel şubelerde oturum açtıkça çalışacaktır.
Bunun mümkün olduğuna inanmıyorum. Bu uzak repoyu yerel olarak klonlamanız ve git fetch
buna git log
karşı çıkmadan önce gerçekleştirmeniz gerektiğine inanıyorum .
Benim için işe yarayan buydu:
git fetch --all
git log production/master
Bu TÜM uzaktan kumandalardan getirilir, yani potansiyel olarak "sadece taahhüt günlüklerine bakmak için 2GB değerinde nesneleri klonlamak zorundasınız" .
Filtreleme eklendiğinde emin değilim, ancak yalnızca geçmiş / ref-günlüklerini almak istiyorsanız nesne bloblarını hariç tutmanın bir yolu var:
git clone --filter=blob:none --no-checkout --single-branch --branch master git://some.repo.git .
git log
Uzak sunucunun günlüğünü kolayca alabilirsiniz. Bunu nasıl yapacağınız aşağıda açıklanmıştır:
(1) git ssh ile kullanılıyorsa - git girişinizi ve şifrenizi kullanarak uzak sunucuya giriş yapın ve deponuzun bulunduğu uzak klasörü yönlendirin ve uzak sunucudaki deponuzun içindeki "git log" komutunu çalıştırın.
(2) Git'i Unix'in standart giriş protokolü üzerinden kullanıyorsanız, o zaman uzak sunucunuza telnet yapın ve oraya bir git günlüğü yapın.
Bu yardımcı olur umarım.
İşte bir uzaktan kumandadaki günlükleri görüntülemeyi kolaylaştıran bir bash işlevi. İki isteğe bağlı argüman alır. Birincisi şube , varsayılan olarak master . İkincisi uzaktan kumanda , varsayılan olarak evreleme .
git_log_remote() {
branch=${1:-master}
remote=${2:-staging}
git checkout $remote/$branch
git fetch
git log
git checkout -
}
örnekler:
$ git_log_remote
$ git_log_remote development origin