Mengkloning repo Github pribadi


226

Saya memiliki repositori pribadi di Github untuk proyek yang sedang saya kerjakan. Sampai sekarang saya hanya bekerja di desktop rumah saya, tetapi saya baru saja membeli laptop, dan saya sedang mencoba untuk mengaturnya sehingga saya dapat bekerja pada proyek dari komputer manapun, dan perubahan push / pull.

Saya menambahkan kunci SSH baru ke akun Github saya untuk laptop, dan berhasil mengkloning dan membuat perubahan pada repo tes publik yang saya buat. Namun, saya tidak bisa mengkloning repo pribadi. Apakah ada hal khusus yang perlu saya lakukan di baris perintah untuk mengkloning repo pribadi? Apakah saya perlu mengatur akun GitHub baru untuk laptop saya dan mengatur diri saya sebagai kolaborator?

Perintah yang saya gunakan adalah git clone git://github.com/myusername/reponame.git


3
Perintah apa yang Anda gunakan untuk mencoba mengkloning repo pribadi secara lokal? Kesalahan apa yang Anda dapatkan?
Ron DeVera

Jawaban:


171

URL klon pribadi mengambil formulir git@github.com:username/repo.git- mungkin Anda perlu menggunakan git@daripada git://?

git:// URL hanya baca, dan sepertinya repo pribadi tidak mengizinkan bentuk akses ini.


Ya - menggunakan "git@github.com:" daripada "https: //" menyelesaikan masalah saya! Sebenarnya saya mengaktifkan 2FA pada saat yang sama tetapi itu tidak ada hubungannya dengan itu.
leo

148

Ini bekerja untuk saya:

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

Ini, tentu saja, setelah menambahkan kunci SSH saya ke Github . Saya menggunakan ini pada server CentOs, jika itu perlu.


4
Terima kasih untuk ini. Tapi saya tidak tahu mengapa ini berhasil. Tidak pernah diminta kata sandi. Haruskah git klon melalui https dengan cara apa pun menyentuh kunci ssh saya? Saya pikir tidak.
reinhardt

1
Bagus, itu membuat saya dapat mengunduh repo pribadi di Ubuntu.
Nino Škopac

Mengapa ini berfungsi tetapi git@github.com: nama pengguna / repo.git tidak?
diimdeep

@diimdeep Git dan alat-alat lain, sering menggunakan protokol git: untuk mengakses file dalam repositori jarak jauh. Beberapa konfigurasi firewall memblokir git: // URL, yang mengarah ke kesalahan ketika mencoba mengkloning repositori atau mengunduh dependensi. (Misalnya firewall perusahaan "terkenal" karena memblokir git :.) Jika Anda mengalami masalah ini, Anda dapat memaksakan penggunaan https: sebagai gantinya, dengan menjalankan perintah berikut: git config --global url. "Https: // ".bahkan git: //
charlchad

1
Dalam beberapa kasus, jika Anda dimintai kata sandi dan kemudian ditolak aksesnya, itu mungkin karena Anda perlu memberikan "token akses pribadi" alih-alih kata sandi masuk GitHub Anda. [1] help.github.com/articles/which-remote-url-should-i-use [2] help.github.com/articles/…
David Winiecki

71

Ini bekerja untuk saya:

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

5
ini bermasalah dengan kata sandi karakter khusus, meninggalkan kata sandi Anda di log dan sepertinya tidak berfungsi lagi
pcnate

5
Coba ini - Anda akan diminta memasukkan kata sandi akun Anda. Jangan khawatir tentang kata sandi yang mempelajari riwayat atau log. git clone https://username@github.com/username/repo_name.git
Vinay

64

Saya telah bertemu masalah ini beberapa kali dan setiap kali saya mendarat di halaman ini, mencoba semuanya dan gagal!

Itu karena saya telah mengaktifkan 2FA !!!

Menurut https://help.github.com/articles/which-remote-url-should-i-use/#when-2fa-is-enabled

Jika Anda telah mengaktifkan  otentikasi dua faktor , atau jika Anda mengakses organisasi yang menggunakan  sistem masuk tunggal SAML , Anda harus  memberikan token akses pribadi  alih-alih memasukkan kata sandi Anda untuk HTTPS Git.

  1. Ikuti tautan ini dan buat token akses
  2. git clone https://github.com/username/repo_name.git (Tautan git repo default cukup bagus!)
  3. Masukkan nama pengguna Anda dan gunakan token akses sebagai kata sandi !!

Memperbarui:

  • Jika Anda tidak keberatan mengekspos token akses Anda di baris perintah, Anda juga dapat menempelkan token akses sebagai nama pengguna lalu tekan enter enter (tidak perlu kata sandi).
  • Benci menyalin & menempelkan token akses berulang-ulang?
    Gunakan git config credential.helper store(jangan lakukan ini pada mesin yang tidak Anda percayai)

Jika Anda menggunakan Windows, Anda dapat menginstal github.com/microsoft/Git-Credential-Manager-for-Windows Kemudian ketika kloning repositori pribadi, jendela UI dengan login Github muncul. Ini juga akan membiarkan Anda mengisi kode 2FA. Kredensial Github Anda akan disimpan dengan aman.
Jirik

18

Menggunakan Git untuk Windows, lebih mudah menggunakan url HTTPS.

Buka cangkang git lalu git clone https://github.com/user/repo. Masukkan nama pengguna dan kata sandi saat diminta. Tidak perlu mengatur kunci SSH.


1
Saya setuju dengan kesederhanaan karena tidak harus mengatur ssh
Félix Gagnon-Grenier

Setuju dengan komentar lain, hanya menggunakan HTTPS url berfungsi sempurna di Windows atau Ubuntu (dicoba pada 116,04)
greg_data

18

Bagi saya solusinya adalah:

git clone https://myusername@restoftherepolink.git

Di sini Anda harus menjadi pemilik repo tetapi jika Anda tidak melakukannya maka akan menjadi seperti itu

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

Jika sudah,2FA enabled maka:

  1. Buka pengaturan dari ikon profil di kanan atas atau kunjungi https://github.com/settings/profile
  2. Buka tab bawah atau buka https://github.com/settings/tokens
  3. Buka tab terakhir di sini Token pribadi. Dan menghasilkan token
  4. Salin token dan jalankan git clone https://myusername@restoftherepolink.git

Ketika diminta kata sandi, letakkan token itu di sini. Gambar generasi token di sini


1
sepertinya git meminta nama pengguna / kata sandi jika tidak ada repositori publik dengan URI itu, jadi perintah pertama sudah benar
pcnate

8

Saya memiliki akun perusahaan (pribadi) dan Otentikasi 2-Faktor diaktifkan, jadi saya harus menggabungkan beberapa posting untuk membuatnya berfungsi seperti di bawah ini. (Mencatat sehingga mungkin berguna bagi seseorang dengan situasi yang sama)

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

Menginstal pengelola kredensial dan memperbarui GIT sebagaimana disebutkan di sini: https://codeshare.co.uk/blog/how-to-solve-the-github-error-fatal-httprequestexception-encountered/

Itu tidak menyelesaikan masalah karena masalah pindah ke di bawah ini ketika saya mencoba menggunakan perintah klon sebagai berikut:

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

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

Kata sandi saya memiliki simbol $ dan untuk beberapa alasan GIT command line / GIT Bash tidak menyukainya. Saya bisa melihat ini pada teks yang dikembalikan kesalahan tidak memiliki simbol $ di dalamnya.

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

Saya harus merujuk situs ini: https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage

Harap dicatat: Jika kata sandi yang salah disimpan untuk akun Anda di Windows Credential Manager, itu juga akan menambah masalah. Saya menghapus kredensial github yang disimpan dengan cara ini sebelum pindah ke langkah di bawah ini.

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

Sekarang manajer Kredensial Windows muncul. Saya mengetikkan nama pengguna dan kata sandi saya di kotak teks (Ini menerima kata sandi saya yang memiliki simbol $) dan meminta saya untuk kode Otentikasi 2-Faktor. Saya mengetikkan kode otentikasi dari Google Authenticator, dan klon dimulai dengan sempurna.


Simbol dolar $adalah karakter khusus di Unix. Ini menandai awal pengambilan nilai variabel dengan nama yang sama dengan string yang mengikuti $simbol.
Let Me Tink About It

Bagi saya menghapus Kredensial Windows memperbaiki masalah.
Michael Larionov

6

Ketika kloning dari repo pribadi dengan 2FA diaktifkan, ada langkah-langkah sederhana yang perlu Anda ikuti

  1. Buka akun Git Anda
  2. Pergi ke Pengaturan-> Pengaturan Pengembang-> Token Akses Pribadi
  3. Klik pada Hasilkan token baru
  4. Buat token dengan judul yang Anda inginkan dan dengan fungsionalitasnya
  5. Ketika Anda mengkloning repo pribadi, dengan menggunakan git clone repoName, setelah memasukkan nama pengguna Anda, berikan token akses pribadi sebagai kata sandi.

Ikuti langkah-langkah yang sama ketika Anda mendapatkan pesan kesalahan gagal Otentikasi untuk Repo pribadi


5

Menanggapi jawaban mac, Anda bisa mendapatkan SSH clone URL pada Anda github repo halaman Anda, dengan mengklik SSHpada You can clone with HTTPS, SSH, or Subversion.dan salin URL.


4

Ini bekerja untuk saya di mac git clone https://username@github.com:username/repo_name


3

Selain jawaban MK Yung: pastikan Anda menambahkan kunci publik untuk di mana pun Anda menyebarkan ke kunci penyebaran untuk repo, jika Anda tidak ingin menerima respons Terlarang 403.




1

Jika komputer yang baru digunakan memiliki kredensial yang berbeda menjalankan perintah ini

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

secara langsung tidak akan bekerja. Git akan mencoba menggunakan kredensial yang disimpan dan tidak akan meminta Anda untuk nama pengguna dan kata sandi. Karena ketidakcocokan kredensial, git akan menampilkan Repository not founddan operasi klon gagal. Cara saya menyelesaikannya adalah dengan menghapus kredensial lama, karena saya tidak menggunakannya lagi, dan menjalankan perintah yang disebutkan di atas lagi dan memasukkan nama pengguna dan kata sandi yang diperlukan dan mengkloning repo pribadi.


1

1) coba jalankan perintah dengan nama pengguna dan kata sandi dalam format di bawah ini

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

sekarang masalah yang orang lain sebutkan di sini adalah ketika kita memiliki karakter khusus dalam kata sandi kita. Dalam Javascript, gunakan kode di bawah ini untuk mengonversi kata sandi dengan karakter khusus ke pengkodean UTF-8.

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

sekarang gunakan kata sandi yang dihasilkan ini alih-alih dengan karakter khusus dan jalankan perintah.

Semoga ini memecahkan masalah.



0

Jika Anda yakin bahwa Anda tidak mengaktifkan 2FA, Anda memiliki izin untuk mengakses repo, dan repo itu ada, mungkin saja git@github.com Anda masuk dengan akun lain.

untuk memeriksa yang dapat Anda lakukan

ssh -T git@github.com

Jika itu menunjukkan akun lain, untuk mengatasi masalah ini:

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

Ini akan menampilkan: unknown option -T. Versi git saya adalah2.7.4
bvdb

@ bvdb, permintaan maaf saya, seharusnyassh -T git@github.com
Kexin Lu

0

Jika Anda ingin mencapainya Dockerfile, baris di bawah ini membantu.

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

Maka kita bisa membangun dengan argumen di bawah ini.

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

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

Ketika Anda mencoba menggunakan repo pribadi dari repo pada saat itu, Anda harus menyampaikan nama pengguna dan kata sandi untuk itu.


Ini tidak aman. Repo yang dikloning menyimpan tautan http yang disediakan dalam file .git / config. Semua komit yang dibuat untuk repo lokal dapat didorong ke jarak jauh tanpa memerlukan nama pengguna dan kata sandi. Yang benar-benar berbahaya jika Anda bukan satu-satunya pengguna !!
Tian
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.