Özel bir Github deposunu klonlama


226

Üzerinde çalıştığım bir proje için Github'da özel bir depom var. Şimdiye kadar sadece ev masaüstümde çalıştım, ancak sadece bir dizüstü bilgisayar satın aldım ve her iki bilgisayardan da proje üzerinde çalışabilmem ve değişiklikleri değiştirebilmem için kurmaya çalışıyorum.

Dizüstü bilgisayar için Github hesabıma yeni bir SSH anahtarı ekledim ve kurduğum bir genel test deposunda klonlama ve değişiklik yapmada başarılı oldum. Ancak, özel repoyu klonlayamadım. Özel bir repoyu klonlamak için komut satırında yapmam gereken özel bir şey var mı? Dizüstü bilgisayarım için yeni bir GitHub hesabı oluşturmam ve kendimi ortak çalışan olarak ayarlamam gerekir mi?

Kullandığım komut git clone git://github.com/myusername/reponame.git


3
Özel repoyu yerel olarak klonlamayı denemek için hangi komutu kullandınız? Hangi hataları aldınız?
Ron DeVera

Yanıtlar:


171

Özel klon URL'leri formu alır git@github.com:username/repo.git- belki de kullanmak git@yerine git://?

git:// URL'ler salt okunurdur ve özel depoların bu erişim biçimine izin vermediği anlaşılmaktadır.


Evet - "https: //" yerine "git@github.com:" kullanmak sorunumu çözdü! Aslında 2FA'yı aynı anda etkinleştirdim ama bununla hiçbir ilgisi yoktu.
leo

148

Bu benim için çalıştı:

git clone https://username@github.com/username/repo_name

Bu, elbette, SSH anahtarımı Github'a ekledikten sonraydı . Gerekirse bunu bir CentOs sunucusunda kullandım.


4
Bunun için teşekkürler. Ama bunun neden işe yaradığını bilmiyorum. Asla bir şifre istenmedi. Git klon https ile herhangi bir şekilde ssh tuşları dokunmalı mı? Öyle düşünmemiştim.
reinhardt

1
Güzel, beni Ubuntu'ya özel bir repo indirebildim.
Nino Škopac

Neden çalışıyor ama git@github.com: kullanıcı adı / repo.git çalışmıyor?
diimdeep

@diimdeep Git ve diğer araçlar, uzak depolardaki dosyalara erişmek için genellikle git: protokolünü kullanır. Bazı güvenlik duvarı yapılandırmaları git: // URL'lerini engelliyor, bu da depoları klonlamaya veya bağımlılıkları indirmeye çalışırken hatalara neden oluyor. (Örneğin, şirket güvenlik duvarları git'i engellemek için "kötü şöhretlidir".) Bu sorunla karşılaşırsanız, aşağıdaki komutu çalıştırarak https: kullanımını zorlayabilirsiniz: git config --global url. "Https: // ".insteadOf git: //
charlchad

1
Bazı durumlarda, bir parola girmeniz ve daha sonra erişiminiz reddedilirse, bunun nedeni GitHub oturum açma parolanız yerine "kişisel erişim belirteci" sağlamanız gerekebilir. [1] help.github.com/articles/which-remote-url-should-i-use [2] help.github.com/articles/…
David Winiecki

71

Bu benim için çalıştı:

git clone https://username:password@github.com/username/repo_name.git

5
Bu özel karakter şifreleri ile sorunlu, günlüklerde şifrenizi bırakır ve artık çalışmıyor gibi görünüyor
pcnate

5
Bunu deneyin - Hesap şifrenizi girmeniz istenir. Geçmişe veya günlüklere şifre öğrenmekten endişe etmeyin. git clone https://username@github.com/username/repo_name.git
Vinay

64

Bu sorunu birkaç kez karşıladım ve bu sayfaya her geldiğimde her şeyi denedim ve başarısız oldum!

Çünkü 2FA etkinleştirilmiş !!!

Https://help.github.com/articles/which-remote-url-should-i-use/#when-2fa-is-enabled'a göre

İki faktörlü kimlik doğrulamayı etkinleştirdiyseniz  veya SAML tek oturum açma kullanan bir kuruluşa erişiyorsanız  ,  HTTPS Git için şifrenizi girmek yerine kişisel bir erişim belirteci sağlamanız gerekir  .

  1. Bu bağlantıyı takip edin ve bir erişim belirteci oluşturun
  2. git clone https://github.com/username/repo_name.git (Varsayılan git repo bağlantısı yeterince iyi!)
  3. Kullanıcı adınızı girin ve erişim kodunu şifre olarak kullanın !!

Güncelleme:

  • Erişim belirtecinizi komut satırında göstermenin sakıncası yoksa, erişim belirtecini kullanıcı adı olarak da yapıştırabilir ve enter tuşuna basabilirsiniz (parola gerekmez).
  • Erişim kodunu tekrar tekrar kopyalayıp yapıştırmaktan nefret mi ediyorsunuz?
    Kullanın git config credential.helper store(bunu güvenmediğiniz bir makinede yapmayın)

Windows'taysanız, github.com/microsoft/Git-Credential-Manager-for-Windows yükleyebilirsiniz . Sonra özel bir havuzu kopyalarken , Github girişli UI penceresi görünür. Ayrıca 2FA kodunu doldurmanıza izin verir. Github kimlik bilgileriniz güvenli bir şekilde saklanacaktır.
Jirik

18

Windows için Git'i kullanmak HTTPS URL'sini kullanmak daha kolaydır.

Sonra bir git kabuğu açın git clone https://github.com/user/repo. İstendiğinde kullanıcı adını ve şifreyi girin. Bir SSH anahtarı ayarlamanıza gerek yoktur.


1
Ben ssh kurulum değil basitliği ile katılıyorum
Félix Gagnon-Grenier

Diğer yorumları kabul edin, sadece HTTPS url kullanmak Windows veya Ubuntu'da mükemmel çalışıyor (116.04'te denendi)
greg_data

18

Benim için çözüm şuydu:

git clone https://myusername@restoftherepolink.git

Burada repo sahibi olmanız gerekir, ancak değilseniz o zaman

git clone https://myusername@github.com/ownersusername/repo_name.git

Eğer varsa2FA enabled :

  1. Sağ üstteki profil simgesinden ayarlara gidin veya https://github.com/settings/profile adresini ziyaret edin
  2. Alt sekmeye gidin veya https://github.com/settings/tokens adresine gidin.
  3. Burada son sekmeyi aç Kişisel belirteçler. Ve bir jeton oluşturun
  4. Jetonu kopyalayın ve çalıştırın git clone https://myusername@restoftherepolink.git

Parola istendiğinde bu jetonu buraya koyun. Jeton üretimi resmi burada


1
Görünüşe göre git, bu
URI'de

8

Bir şirket (özel) hesabım ve 2-Faktör-Kimlik Doğrulaması etkin, bu yüzden aşağıdaki gibi çalışması için birkaç yazı birleştirmek zorunda kaldı. (Aynı duruma sahip biri için yararlı olabileceği için not düşüyor)

Initially it was the Fatal Error. 
fatal: repository 'https:
...
remote: Repository not found.
fatal: repository 'https:

Kimlik bilgisi yöneticisini yükledi ve GIT'i burada belirtildiği şekilde güncelledi: https://codeshare.co.uk/blog/how-to-solve-the-github-error-fatal-httprequestexception-encountered/

Aşağıdaki gibi klon komutunu kullanmaya çalıştığımda sorun aşağıya taşındığı için bu sorunu çözmedi:

$ git clone https://<username>:<password>@github.com/<ORG_NAME>/<PROJECT-NAME>.git

remote: Invalid username or password.
fatal: Authentication failed for 'https://

Şifremde $ sembolü vardı ve bir nedenden dolayı GIT komut satırı / GIT Bash bunu beğenmedi. Geri döndü metin üzerinde $ sembolü yoktu bu hata görebilirsiniz.

fatal: Authentication failed for 'https://<username>:<password-missing-$-symbol>@github.com/<ORG_NAME>/<PROJECT-NAME>.git'

Bu siteye başvurmak zorunda kaldım: https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage

Lütfen dikkat: Windows Kimlik Bilgileri Yöneticisi'nde hesabınız için yanlış bir parola depolanırsa , soruna da eklenir. Aşağıdaki adıma geçmeden önce bu şekilde saklanan github kimlik bilgilerini kaldırdım.

$ git config --global credential.helper cache
$ git clone https://<username>:<password>@github.com/<ORG_NAME>/<PROJECT-NAME>.git

Şimdi Windows Kimlik Bilgisi yöneticisi açıldı. Metin kutularına kullanıcı adımı ve şifremi yazdım (Bu, $ sembolüne sahip olan şifremi kabul etti) ve 2 Faktörlü Kimlik Doğrulama kodunu istedi. Google Şifrematik'ten kimlik doğrulama kodunu yazdım ve klon mükemmel başladı.


Dolar sembolü $Unix'te ayrılmış bir karakterdir. Bir değişkenin alınmasının başlangıcını, $sembolü izleyen dizeye eşit olan bir adla işaretler.
Let Me Tink About

Benim için Windows Kimlik Bilgilerini silmek sorunu çözdü.
Michael Larionov

6

2FA etkinken özel depolardan klonlarken, izlemeniz gereken basit adımlar vardır

  1. Git hesabınıza gidin
  2. Ayarlar-> Geliştirici Ayarları-> Kişisel Erişim Simgesi'ne gidin
  3. Yeni jeton oluştur'u tıklayın
  4. İstediğiniz başlığa ve işlevlere sahip bir token oluşturun
  5. Özel depoyu kopyalarken, git clone repoName'i kullanarak, kullanıcı adınızı girdikten sonra, parola olarak kişisel erişim belirteci verin.

Özel Repo için Kimlik Doğrulaması başarısız hata mesajı aldığınızda aynı adımları izleyin


5

Mac en yanıta yanıt seçeneğini tıklayarak, SSH klon URL üzerinde senin github Repo sayfasını alabilirsiniz SSHüzerinde You can clone with HTTPS, SSH, or Subversion.ve URL'yi kopyalayın.


4

Bu benim için Mac'te çalıştı git clone https://username@github.com:username/repo_name


3

MK Yung'in cevabına ek olarak: 403 Yasak yanıtı almak istemiyorsanız, deponun dağıtım anahtarlarına konuşlandırdığınız her yerde genel anahtarı eklediğinizden emin olun.


3

Öncelikle bir SSH anahtarınızın olduğundan emin olun veya şu adresten bir anahtar oluşturun: https://help.github.com/articles/generating-ssh-keys/

Anahtarınızı aldıktan sonra, şu adresteki github hesabınıza eklemeniz gerekir: https://github.com/settings/ssh

Windows kullanıcıları için git bash'ı yönetici olarak çalıştırmak yararlıdır.

Artık klonlama, kullanıcı adınızı ve şifrenizi girmek zorunda kalmadan özel depolar (repo) için çalışmalıdır.



1

Yeni kullanılan bilgisayarda bu komutu çalıştıran farklı kimlik bilgileri varsa

git clone https://github.com/username/reponame.git

doğrudan çalışmaz. Git depolanan kimlik bilgilerini kullanmaya çalışır ve sizden kullanıcı adı ve parola istemez. Kimlik bilgileri uyuşmadığından git çıkacak Repository not foundve klonlama işlemi başarısız olacaktır. Çözdüğüm yol artık eski kimlik bilgilerini silmektir, çünkü artık onları kullanmıyorum ve yukarıda belirtilen komutu tekrar çalıştırdım ve gerekli kullanıcı adını ve şifreyi girdim ve özel repoyu klonladım.


1

1) aşağıdaki formatta kullanıcı adı ve şifre ile komut çalıştırmayı deneyin

git clone https://your_username:your_password@github.com/username/reponame.git

şimdi burada belirtildiği gibi sorun bizim şifremizde özel bir karakter var. Javascript'te özel karakterli şifreyi UTF-8 kodlamasına dönüştürmek için aşağıdaki kodu kullanın.

console.log(encodeURIComponent('password@$123'));

şimdi özel karakterler ve run komutu olan bir şifre yerine bu oluşturulan şifreyi kullanın.

Umarım bu sorunu çözer.



0

2FA'nın etkin olmadığından eminseniz, repoya erişim izniniz var ve repo var, git@github.com adresiniz başka bir hesapla oturum açmış olabilir.

yapabileceğini kontrol etmek

ssh -T git@github.com

Başka bir hesap gösteriyorsa, bu sorunu çözmek için:

 ssh-add -D
 ssh-add ~/.ssh/your_rsa
 ssh -T git@github.com
 git clone git@github.com:<owner_name>/<repo_name>.git

Bu görüntüler: unknown option -T. Benim git sürüm2.7.4
bvdb

Özür dilerim, olmalıydıssh -T git@github.com
Kexin Lu

0

Eğer bunu başarmak istiyorsanız Dockerfile, aşağıdaki satırlar yardımcı olur.

ARG git_personal_token
RUN git config --global url."https://${git_personal_token}:@github.com/".insteadOf "https://github.com/"
RUN git clone https://github.com/your/project.git /project

Sonra aşağıdaki argüman ile inşa edebiliriz.

docker build --build-arg git_personal_token={your_token} .

0
git clone https://myusername:mygithubpassword@github.com/myusername/project.git

Özel repo'yu repodan kullanmaya çalışırken, bunun için kullanıcı adını ve şifreyi geçmeniz gerekiyor.


Bu güvenli değil. Klonlanan repo, sağlanan http bağlantısını .git / config dosyasında depolar. Yerel repoya yapılan tüm taahhütler, kullanıcı adı ve şifre gerekmeksizin uzaktan kumanda edilebilir. Eğer tek kullanıcı değilseniz hangi gerçekten tehlikelidir !!
Tian
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.