Uzak bir Git deposuna yazma erişimini nasıl kontrol edebilirim ("aktarabilir miyim?")


85

Bir (biraz sınırlı) Git istemcisi oluşturuyorum. Bir depo kurmak için, uzak deponun URL'sini girersiniz. Kullanıcının bu depoya okuma + yazma erişimi olup olmadığını kontrol etmek istiyorum. Değilse, bir kimlik doğrulama iletişim kutusu sunuyorum.

Ben kontrol erişimi 'okundu' ile git ls-remote <url>.

Önce depoyu klonlamadan 'yazma' erişimini kontrol etmenin benzer bir yolu var mı ? (Yapabileceğimi biliyorum git clone <url>ve sonra git push --dry-run)


2
Teknik olarak bir taahhüdü bir depoya itmek için önce onu klonlamanıza gerek yoktur. Ancak, bir işlem zincirini zorlamanın ve uzak referansları güncellemenin iki farklı işlem olduğunu ve birincisi için izniniz olabileceğini, ancak ikincisi için izninizin olmadığını unutmayın. Ayrıca bazı referanslar değiştirilemez olabilir.
user3159253

Bu yazıda klonladığınızda yazma erişimini kontrol etmenin bir yolu olarak 'git push --dry-run'dan bahsedilmektedir. ancak bazı uzaktan kumandalarım için bu bir parola istemi açıyor ve süresiz olarak kilitleniyor. Deponun bir klonuna sahip olsanız bile, yazma erişiminizin olup olmadığını kontrol etmenin etkileşimli olmayan bir yolu yok gibi görünüyor. bir kopyasına sahipsem, bir git deposuna yazma erişimini nasıl kontrol edebilirim?
rektide

Kontrol etmenin çok kolay bir yolu, deponun ana Kod sayfasında README.MD'nin sağ üst köşesinde bir 'kalem' düzenleme simgesi görüp görmediğinizdir (uzun bir üst seviye dosya / klasör listesi varsa aşağı kaydırın) . Tabii ki Github'a giriş yaptığınızda bunu yapın.
Spike

Yanıtlar:


71

Git deposu github'daysa, depodaki herhangi bir dosyayı açın, ardından 'düzenle'yi tıklayın, github şuna benzer bir şey gösterecektir:

Yazma erişiminiz olmayan bir projedeki bir dosyayı düzenliyorsunuz. Önerdiğiniz değişiklikleri uygulamanız için bu projeden bir çatal oluşturduk. Bu dosyada bir değişiklik göndermek, onu çatalınızdaki yeni bir şubeye yazacaktır, böylece bir çekme isteği gönderebilirsiniz. Kodu buraya girin


22
Yanlış değilsin - Github gerçekten de bu davranışı gösteriyor. Ancak OP git ls-remote, yeni araçlarının kullanabileceğine benzer bir şey istedi , bu nedenle Github web kullanıcı arayüzü muhtemelen onlara uymayacaktır.
RJHunter

12
Github depolarından daha fazla git deposu var;)
René Roth

5
GUI ile ilgili olarak, araç ipucu, erişim yoksa "Düzenleyebildiğinizi" veya "Çataldan sonra düzenleyebileceğinizi" de belirtebilir. Bu, hem Github uygun hem de GH Enterprise için geçerlidir.
Scott Prive

1
Bir depoyu çatallamak deponun tamamını kopyalar, değil mi? Depo çok büyük olabilir. Bu, erişim seviyenizin ne olduğunu kontrol etmek için oldukça ağır bir işlem gibi görünüyor ...
Kyle Delaney

2
@KyleDelaney Düzenle düğmesine tıklamanıza gerek yok, sadece üzerine gelin. Yazma erişiminiz olup olmadığına bağlı olarak "Bu dosyayı düzenle" veya "Bu projenin çatalındaki dosyayı düzenle" gösterecektir.
joulev

3

git push git+ssh://host.org/path/to/repo some_refKlonlamadan oynayabilirsiniz . Ama yukarıdaki yorumuma bakın


2
Bu yöntem, ref ile bir çalışma dizininden çalışır. Sahte bir repo kurmadan ve önce bir commit oluşturmadan bunu yapmanın bir yolu var mı?
Yang Meyer

15
Evet, kim tüm bu rastgele kukla taahhütleri ister? Daha temiz bir yol yok mu?
Dan Bolser

Bunu kendim denemedim, ama belki --dry-runparametre gerçek bir commit yapmadan push erişimini test etmek için kullanılabilir mi? git-scm.com/docs/git-push#Documentation/git-push.txt---dry-run
Nathan Friend

--dry-runbu amaçla kullanılamaz. Açıklama için bu yanıtı kontrol edin: stackoverflow.com/questions/25403573/…
Nahiyan
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.