Seorang teman dan saya sendiri sedang berbagi komputer. Saya telah mendorong GitHub menggunakan git bash shell pada Windows 7. Sekarang kami berada di proyek yang berbeda di komputer itu dan saya perlu dia mendorong ke akunnya. Tetapi terus mencoba menggunakan nama pengguna saya dan mengatakan saya tidak memiliki akses ke repositori nya:
$ git push her_github_repository our_branch
ERROR: Permission to her_username/repository.git denied to my_username.
fatal: The remote end hung up unexpectedly
git config --global user.name her_username
) sebelum mendoronggit config --local credential.helper ""
dapat melakukan trik.Jawaban:
Jika Anda menggunakan pengguna windows yang berbeda, kunci SSH dan pengaturan git Anda akan independen.
Jika ini bukan opsi untuk Anda, maka teman Anda harus menambahkan kunci SSH Anda ke akun Github-nya.
Meskipun, solusi sebelumnya akan membuat Anda terus mendorong diri sendiri, tetapi itu akan memungkinkan Anda untuk mendorong repo-nya. Jika Anda tidak menginginkan ini dan bekerja di folder berbeda pada PC yang sama, Anda dapat mengatur nama pengguna dan email secara lokal di dalam folder dengan git dengan menghapus
-g
flag dari perintah config:Atau, jika Anda mendorong
https
protokol, Github akan meminta nama pengguna / kata sandi setiap kali (kecuali jika Anda menggunakan pengelola kata sandi).sumber
git config --global user.name "Mona Lisa"
Ini bekerja untuk saya, itu akan meminta nama pengguna dan kata sandi
sumber
helper = cache --timeout=999999
mengatur.gitignore
dan ini berhasil. Tapi ada cara untuk mengatur ulang itu tanpa mengubah konfigurasi lokal saya ingin tahu?credential.helper
, misalnya toko kredensial Windows. Ini juga berarti meminta nama pengguna / kata sandi setiap kali membutuhkannya, karena tidak ada yang dikonfigurasi, Jadi mungkin Anda juga dapat mengkonfigurasicredential.helper
untuk cache sebagai gantinya (lihat jawaban @Ciro Santilli) atau gunakan jawaban yang berbeda di sini.Anda dapat mendorong dengan menggunakan akun yang berbeda. Misalnya, jika akun Anda adalah A yang disimpan di .gitconfig dan Anda ingin menggunakan akun B yang merupakan pemilik repo yang ingin Anda push.
Akun B : B_user_name, B_password
Contoh tautan SSH: https://github.com/B_user_name/project.git
Dorongan dengan akun B adalah:
Untuk melihat akun di .gitconfig
$git config --global --list
$git config --global -e
(untuk mengubah akun juga)sumber
user.name
,user.email
dalam konfigurasi lokal, saya telah mengkloning dengan nama pengguna, dan tidak berfungsi; sekarang jawaban terakhir berfungsi tanpa menyentuh gantungan kunci / apa pun ... diGit 2.9.0 in Windows
. "akhirnya tetapi tidak sedikit" ... inilah yang disebut. Terima kasih. Jawaban ini layak mendapat lebih banyak dukungan.https://'B_user_name'@github.com/B_user_name/project.git
. Ini akan meminta kata sandiB_user_name
.Saya menyiapkan alias ssh menggunakan kustom
IdentityFile
dan menulis ulang asal untuk menggunakanme-github
nama host kustom saya .sumber
git remote set-url origin git@user1-github:user1/my-repo.git
😊Jika Anda menggunakan URL SSH (
[email protected]:username/projectname.git
) daripada URL HTTPS, Anda dapat menentukan sementara kunci SSH yang berbeda menggunakan$GIT_SSH_COMMAND
variabel lingkungan:Sejauh yang saya tahu, dengan URL SSH, GitHub tidak peduli dengan nama pengguna, hanya tentang kunci: jika akun pengguna memiliki akses ke repositori, dan akun itu memiliki kunci SSH (lihat halaman kunci SSH di akun itu pengaturan), maka jika Anda menggunakan kunci SSH untuk mendorong ke repositori itu, push akan dianggap berasal dari pengguna itu.
sumber
user.name
danuser.email
digit config
akan mengubah akun yang komit berhubungan denganJika setelah menjalankan
git push
Git meminta kata sandiuser
, tetapi Anda ingin mendorongnyanew_user
, Anda mungkin ingin menggunakangit config remote.origin.url
:Pada titik ini gunakan
^C
untuk keluargit push
dan gunakan follow untuk mendorong sebagainew_user
.sumber
git config remote.origin.url https://[email protected]/different_user/repo.git
Sangat sederhana saat melakukan kloning, silakan gunakan URL git dengan nama pengguna Anda. Sementara melakukan itu akan menanyakan kata sandi pengguna baru Anda.
Misalnya:
git clone https: //[email protected]/username/reponame.git
git clone https: //[email protected]/username/reponame.git
sumber
fatal: repo not found
.jika ini masalahmu
Selain mengubah nama pengguna dan email dari terminal menggunakan git config:
Anda harus menghapus info otorisasi dari Keychain. Solusi ini butuh beberapa jam untuk mencari tahu. Saya menemukan bahwa saya juga memiliki sertifikat di gantungan kunci saya.
Buka akses Keychain, klik Semua Item dan cari git. Hapus semua gantungan kunci
sumber
Saya telah menggunakan satu mesin untuk mendorong kode ke dua akun GitHub yang berbeda dengan nama pengguna yang berbeda. Anggap Anda sudah menyiapkan satu akun dan ingin menambahkan yang baru:
ssh-keygen -t rsa -C "[email protected]"
id_rsa
. Berikan nama yang berbeda, misid_rsa_another
ssh-add ~/.ssh/id_rsa_another
touch ~/.ssh/config
dan edit file dengan memberikan konfigurasi ke akun Anda:Sekarang Anda harus dapat mendorong dari akun yang berbeda tergantung pada kunci apa yang Anda tambahkan ke agen ssh, yaitu untuk menggunakan akun pertama Anda, lakukan
ssh-add ~/.ssh/id_rsa
.Anda mungkin juga ingin mengubah email pengguna Anda:
git config --global user.email "[email protected]"
atau bersihkan kunci ssh jika terjadi kesalahan izin saat mendorong kode ke salah satu akun:
ssh-add -D
sumber
git push
bekerja Anda harus bisa mendorong setelah menambahkan kunci AndaPergi ke Manajer Kredensial Pergi ke Kredensial Windows Hapus entri di bawah Kredensial Generik Coba sambungkan lagi.
sumber
Control Panel\All Control Panel Items\Credential Manager
->Windows Credentials
.Seperti yang disebutkan sebelumnya, Anda dapat menggunakan
untuk secara manual mengatur nama pengguna dan email untuk repo tunggal, tetapi Anda harus menambahkan perintah ini:
jika Anda sudah mencoba untuk mendorong sebelum perubahan. Kalau tidak, perubahan tidak muncul dalam file konfigurasi.
sumber
--reset-author
(dengan--
...) akan menempatkan terbaru dikonfigurasi nama / email di komit terakhir, dan juga timestamp terbaru. Itu tidak mempengaruhi perubahan dalam file konfigurasi.Anda dapat menambahkan URL jarak jauh baru untuk menggunakan nama pengguna lain
git remote add origin-username https://[email protected]/repository_name.git
Setelah ini, jika Anda akan mendorong menggunakan
git push -u origin-username master
, ini akan meminta Anda untuk kata sandi.sumber
git config user.name hanya mengubah nama yang saya komit. Saya masih tidak bisa mendorong. Ini adalah bagaimana saya menyelesaikannya, dan saya pikir ini adalah cara yang mudah bagi saya.
Buat kunci SSH dengan nama pengguna yang ingin Anda tekan di komputer, Anda akan menggunakan https://help.github.com/articles/connecting-to-github-with-ssh/
Tambahkan kunci ini ke akun pengguna github yang ingin Anda dorong ke https://help.github.com/articles/adding-a-new-ssh-key-to-your-github-account/
Pilih untuk Mengkloning dengan SSH
Anda dapat mendorong sebagai pengguna ini ke repo itu sekarang.
sumber
Jika di bawah Windows dan Git pengguna untuk Windows dan
manager
untuk mengelola kredensial (aliasGit-Credential-Manager-for-Windows
Tautan ) masalahnya adalah bahwa tidak ada cara mudah untuk beralih di antara pengguna saat mendorong ke GitHubhttps
menggunakanOAuth
token.Alasannya adalah bahwa token disimpan sebagai:
git:https://github.com
Personal Access Token
OAuth_Token
Variasi URL di
Internet Address
tidak berfungsi, misalnya:git:https://[email protected]
git:https://github.com/username
Solusinya: namespaces . Ini ditemukan dalam rincian untuk konfigurasi
Git-Credential-Manager-for-Windows
:Mengutip darinya:
Sekarang, simpan kredensial Anda di Windows Credential Manager sebagai:
git.username:https://github.com
Personal Access Token
OAuth_Token
Perhatikan bahwa kami telah berubah:
git
->git.username
(di mana Anda berubahusername
ke nama pengguna Anda yang sebenarnya atau untuk kepentingan itu, ke apa pun yang Anda inginkan sebagai pengidentifikasi unik)Sekarang, di dalam repositori tempat Anda ingin menggunakan entri spesifik, jalankan:
(Sekali lagi ... ganti
username
dengan nilai yang Anda inginkan)Sekarang Anda
.git/config
akan mengandung:Et voilá! Kredensial yang tepat akan ditarik dari Windows Credential Store.
Ini, tentu saja, tidak mengubah pengguna / email mana yang mendorong. Untuk itu Anda harus mengkonfigurasi yang biasa
user.name
danuser.email
sumber
git config credential.namespace git.username
seperti yang disebutkan (mengganti nama pengguna). Jika Anda mendorong waktu berikutnya, git akan meminta kredensial baru untuk nama pengguna.Saya tidak tahu bagaimana cara mendapatkan identitas github ke-2 pada satu mesin (tidak ada jawaban yang cocok untuk saya), tetapi saya berhasil menemukan cara untuk dapat mendorong ke beberapa akun github yang berbeda seperti saya.
Dorong sebagai nama pengguna yang sama, tetapi ke akun github yang berbeda
Siapkan kunci SSH ke-2 ( seperti itu ) untuk akun github ke-2 Anda
Ubah antar akun sebagai berikut:
Dorong dengan akun github kedua saya yang baru
Dorong dengan akun utama saya
sumber
Jika Anda memiliki https://desktop.github.com/
maka Anda dapat pergi ke Preferensi (atau Opsi) -> Akun
dan kemudian keluar dan masuk.
sumber
Ikuti langkah-langkah berikut:
sumber
Userid di mana komit terjadi disimpan dalam file konfigurasi.
buka bagian atas repositori vi. git / config
ubah baris url yang terdaftar setelah "[remote" origin "] untuk memiliki userid yang sesuai
sumber
Jika Anda menggunakan ssh dan dapatkan
sementara Anda tidak ingin mendorong sebagai Alice_username, pastikan Alice_username tidak memiliki kunci ssh komputer Anda ditambahkan ke akun github-nya.
Saya menghapus kunci ssh saya dari akun github alice dan dorongan itu berhasil.
sumber