Uzak bir Git deposundan belirli bir commit'i alma
Bilgisayarımda klonlamadan uzak bir Git reposundan yalnızca belirli bir işlemi almanın bir yolu var mı? Uzak deponun yapısı benimkiyle tamamen aynı ve bu nedenle herhangi bir çakışma olmayacak, ancak bunu nasıl yapacağım hakkında hiçbir fikrim yok ve o büyük depoyu klonlamak istemiyorum.
Git'te yeniyim, herhangi bir yolu var mı?
178
3
Yalnızca bir kez klonlama yaparsınız, bu nedenle uzak deponun bir klonuna zaten sahipseniz, ondan çekmek her şeyi tekrar indirmeyecektir. Sadece hangi dalı çekmek istediğinizi belirtin veya değişiklikleri getirin ve istediğiniz commit'i kontrol edin.
Yeni bir depodan getirmek, yalnızca sahip olmadığınız değişiklikleri indireceği için bant genişliği açısından çok ucuzdur. Git'in minimum yük ile doğru şeyi yapması açısından düşünün.
Git her şeyi
.git
klasöründe saklar. Bir commit tek başına getirilemez ve saklanamaz, tüm atalarına ihtiyacı vardır. Onlar birbiriyle ilişkilidir.Ancak indirme boyutunu azaltmak için git'ten yalnızca belirli bir dal veya işlemle ilgili nesneleri getirmesini isteyebilirsiniz:
Bu, yalnızca uzak dal
branch
(ve yalnızca sizin kaçırdıklarınız) içinde bulunan komutları indirecek veorigin/branch
içinde saklayacaktır. Daha sonra birleştirebilir veya kontrol edebilirsiniz.Yalnızca SHA1 işlemesi de belirtebilirsiniz:
Bu, yalnızca belirtilen SHA-1 96de5297df870 commit'ini (ve kaçırdığınız atalarını) indirecek ve (mevcut olmayan) uzak dal
origin/foo-commit
olarak saklayacaktır.Git depomda bir çekme işlemi yaptım:
Git'in dal için tüm kodu çekmesine izin verdim ve sonra beni ilgilendiren işleme sıfırlamaya gittim.
git reset --hard
Umarım bu yardımcı olur.
Uzak bir deponun tek bir commit'ini şu şekilde getirebilirsiniz
Nerede?
bir uzak repo adı (örneğin
origin) veya hatta bir uzak repo URL'si (örneğin
https://git.foo.com/myrepo.git`) olabilirörneğin
commit'i (ve eksik ataları) getirdikten sonra basitçe şu şekilde kontrol edebilirsiniz
Bunun sizi "ayrılmış kafa" durumuna getireceğini unutmayın.