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

Salomo
sumber
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 [email protected]:username/repo.git- mungkin Anda perlu menggunakan git@daripada git://?

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

Mac
sumber
Ya - menggunakan "[email protected]:" 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://[email protected]/username/repo_name

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

charlchad
sumber
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 [email protected]: 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:[email protected]/username/repo_name.git
izik f
sumber
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://[email protected]/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)
lzl124631x
sumber
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.

Gustavo Coelho
sumber
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://[email protected]

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

git clone https://[email protected]/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://[email protected]

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

Mamba hitam
sumber
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.

satu dunia
sumber
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

ireshika piyumalie
sumber
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.

MK Yung
sumber
4

Ini bekerja untuk saya di mac git clone https://[email protected]:username/repo_name

Usman Hussain
sumber
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.

hal
sumber
3

Pertama, pastikan Anda memiliki kunci SSH atau menghasilkannya di: https://help.github.com/articles/generating-ssh-keys/

Setelah Anda memiliki kunci, Anda harus menambahkannya ke akun github Anda di: https://github.com/settings/ssh

Untuk pengguna Windows, berguna untuk menjalankan git bash sebagai administrator.

Sekarang kloning harus berfungsi untuk repositori pribadi (repo), tanpa harus memasukkan nama pengguna dan kata sandi Anda.

gcamargo
sumber
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.

Amjad
sumber
1

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

git clone https://your_username:[email protected]/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.

Santosh Kadam
sumber
0

Tambahkan kunci publik ssh desktop Anda di github.

https://github.com/settings/keys

Anda dapat mengkloning repo tanpa kata sandi.

Kishore Relangi
sumber
0

Jika Anda yakin bahwa Anda tidak mengaktifkan 2FA, Anda memiliki izin untuk mengakses repo, dan repo itu ada, mungkin saja [email protected] Anda masuk dengan akun lain.

untuk memeriksa yang dapat Anda lakukan

ssh -T [email protected]

Jika itu menunjukkan akun lain, untuk mengatasi masalah ini:

 ssh-add -D
 ssh-add ~/.ssh/your_rsa
 ssh -T [email protected]
 git clone [email protected]:<owner_name>/<repo_name>.git
Kexin Lu
sumber
Ini akan menampilkan: unknown option -T. Versi git saya adalah2.7.4
bvdb
@ bvdb, permintaan maaf saya, seharusnyassh -T [email protected]
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} .
Youngjae
sumber
0
git clone https://myusername:[email protected]/myusername/project.git

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

divya_kanak
sumber
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