Saya memiliki masalah dengan git dan terminal saya.
Berikut galeri untuk menunjukkan masalah saya: http://imgur.com/a/6RrEY
Ketika saya mendorong komit dari terminal saya, git mengatakan saya mendorong mereka dengan nama pengguna lain, itu adalah pengguna dari organisasi saya (perusahaan saya) tanpa komit sama sekali dan tampaknya itu bukan milik siapa pun: (lihat galeri foto pertama)
Tapi ini tidak terjadi ketika saya menggunakan Github untuk mac, di feed saya melihat komit didorong sendiri.
Masalahnya juga memengaruhi repositori pribadi saya, terminal saya mengatakan bahwa saya tidak memiliki izin untuk mendorong komit pada repositori tersebut (yang jelas salah) karena mencoba mendorongnya dengan pengguna ini: (periksa gambar kedua galeri)
Tebak apa ? Ini tidak terjadi dengan Github untuk mac juga.
Saya mengubah komputer saya ke yang baru beberapa hari yang lalu, jadi saya mengatur ulang semua kunci ssh saya dari github dan hanya menyisakan yang baru yang dihasilkan oleh Github untuk Mac jadi saya tidak berpikir bahwa ada beberapa kunci pengguna / ssh hantu yang tersembunyi Di suatu tempat, hdd ini baru: (lihat galeri foto ketiga)
File .gitconfig saya semuanya jelas, hanya ada kredensial saya: (periksa galeri foto keempat)
Aku benar-benar tidak mengerti, tolong, StackOverflow, kaulah satu-satunya harapanku.
(Saya minta maaf atas keterampilan Gimp saya yang buruk dan referensi Star Wars)
EDIT: ssh-add -l
hanya menampilkan kunci ssh bagus yang dibuat oleh github untuk mac dan saya hanya memiliki satu akun github
EDIT2: ssh -T [email protected]
kenali saya sebagai pengguna yang baik.
EDIT3: Setelah beberapa tes, sepertinya terminal saya melakukan komit dengan nama pengguna saya, tetapi mendorongnya dengan yang lain, Github untuk mac melakukan dan mendorong dengan nama pengguna yang baik. Situasi ini terjadi dengan setiap repo yang saya miliki / buat (bahkan yang baru satu).
EDIT4: Dalam repositori pribadi git log --pretty="%h %an %ae"
menunjukkan nama pengguna saya yang baik
EDIT5: Tidak ada tanda variabel lingkungan yang akan menimpa kredensial saya di fileenv
. Bahkan jika saya mencoba mengatur variabel-variabel itu dengan kredensial yang baik, masalah tetap ada.
EDIT6: Segala sesuatunya berfungsi normal jika saya memaksa pengguna di jalur /.git/config
repositori tetapi saya tidak berpikir itu adalah opsi yang baik:http://[email protected]/USER/REPO.git
EDIT7: Kami menghapus pengguna git yang mendorong komit untuk saya dan ini membawa kesalahan lain:remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/USER/REPO.git/'
EDIT AKHIR: Saya menginstal git dengan homebrew, mengetik git config --global push.default simple
dan sekarang saya mengambil kredensial saya bahkan tanpa memaksa pengguna. Itu aneh. Terima kasih semuanya atas bantuan Anda, Anda orang-orang hebat!
~/.gitconfig
dan$project_root/.git/config
file. Salah satu dari keduanya pasti salah dikonfigurasi untuk nama pengguna.~/.gitconfig
jelas dan begitu juga$project_root/.git/config
. Sebenarnya saya memiliki masalah ini dengan setiap proyek pribadi, proyek kerja dapat didorong karena pengguna lain ini milik organisasi saya yang memiliki repositori tersebut.Jawaban:
Saya baru saja mengalami masalah ini di tempat kerja. Git bawaan yang dikirimkan bersama mac atau datang saat Anda menginstal xcode cache kredensial git di rantai kunci. Perbaikan bagi saya adalah:
mulai akses rantai kunci (mulai sorotan melalui cmd + spasi, ketik gantungan kunci, tekan enter)
Di bawah gantungan kunci di kiri atas, pilih "login" Di bawah kategori di sebelah kiri, pilih "sandi"
cari nama "github" dan hapus.
sumber
seahorse
di Ubuntu.github mengidentifikasi Anda dengan kunci ssh yang dilihatnya, bukan dengan pengaturan apa pun dari git.
Oleh karena itu, Anda perlu memastikan bahwa kunci ssh akun kerja Anda tidak ada di keyring Anda ketika Anda mencoba mendorong dari akun pribadi Anda dan sebaliknya.
Gunakan
ssh-add -l
untuk menentukan kunci mana yang ada di keyring Anda, danssh-add -d <keyfile>
untuk menghapus kunci dari keyring Anda, jika tidak berhasil, hapus kunci ssh 'yang tidak diinginkan' dari~/.ssh/config
.sumber
NB: Github akan tetap mengidentifikasi komit Anda hanya berdasarkan email.
sumber
user.email
disetel dengan benar. Seandainya saya bisa memberi suara positif lima kali.ssh-add -D
ssh-add -l
saya mendapatkan jawaban yang tidak membantu. Itu ketik4096 SHA256:lotsOfGibberish,about40chars (RSA)
Saya tidak tahu bagaimana kami informasi ini.Terlepas dari semua opsi hebat yang diberikan oleh pengguna lain, satu-satunya cara untuk memperbaikinya adalah dengan menginstal ulang git sepenuhnya dan mengetik
git config --global push.default simple
untuk menulis ulang kredensial yang baik.sumber
git config --system --unset credential.helper
bekerja untuk saya, saya sekarang dimintai kredensial GitHub saya saat push lagi dan dapat memberikan ID pengguna dan kata sandi yang benar.git config --system --unset credential.helper
tidak berfungsi pada Windows 10 git bash:error: could not lock config file C:/Program Files/Git/mingw64/etc/gitconfig: Permission denied
Saya menggunakan Windows 10 dan saya menghadapi masalah yang sama hari ini. Dalam kasus saya, kredensial saya untuk pengguna yang berbeda disimpan oleh manajer Kredensial Windows. Jadi menghapus / membatalkan kredensial git dengan perintah di bawah ini,
git config --global --unset credential.helper
tidak membantu. Saya harus menghapus entri di Windows secara manual dengan mengikuti cara di bawah ini,
Mulai -> Panel Kontrol ---> Akun Pengguna ---> Manajer kredensial Anda ---> Kredensial Windows
Kemudian cari entri seperti, git: https://github.com dan hapus. Ini berfungsi dengan baik setelah itu.
sumber
Nama penulis dan pelaku serta email (yang penting untuk GitHub) berasal dari:
Namun, seperti yang disebutkan dalam
git config
dangit commit-tree
, nilai-nilai tersebut dapat diganti oleh variabel lingkungan:Jadi periksa kembali variabel-variabel itu.
Tapi itu harus menjadi solusi yang bagus.
Saat menggunakan url https, saya selalu menentukan pengguna di dalamnya untuk memastikan otentikasi dilakukan dengan pengguna yang tepat.
sumber
git config
kredensial saya benar dan tidak ada variabel lingkungan yang disetel dalam/username/.bashrc
file saya ...env
output ' ' Anda .http://[email protected]/USER/REPO.git
Solusi sementara dijalankan terlebih dahulu,
killall ssh-agent
lalu tambahkan kunci ssh yang dibuat untuk akun yang perlu Anda gunakanssh-add ~/.ssh/id_4shameer
Ini akan membantu kita untuk mengerjakan banyak akun github ketika kita akan mendapatkan kesalahan ketik
ERROR: Permission to user/repo-git.git denied to username.
sumber
killall
, ssh-agent harus di-restart denganeval "$(ssh-agent -s)"
, danssh-add
perintah harus dijalankan dengansudo
.Jika Anda menggunakan MAC, buka Akses Keychain dan hapus entri pengguna yang tidak Anda inginkan untuk akses git.
sumber
Solusi bagi saya adalah menambahkan entri di file ~ / .ssh / config saya untuk github. Saya harus melakukan ini karena:
Entri yang saya tambahkan adalah:
Saya telah membuat kunci baru , unik untuk akun saya, sebagai id_rsa_waterproofpatch. Entri di konfigurasi ssh saya ini menetapkan bahwa untuk koneksi ke github.com, saya ingin menampilkan kunci ini.
Solusi lain mungkin bagi saya untuk masuk ke akun lain, hapus kunci ssh duplikat.
sumber
Saya mengalami masalah serupa dan ternyata masalahnya adalah fakta bahwa file kunci publik berisi alamat email saya di baris terakhir. Itu sepertinya mengesampingkan pengaturan Pengguna di konfigurasi saya. Segera setelah saya menghapus email saya dari file .pub (dan mengunggah ulang ke repo saya) Git terhubung menggunakan pengguna yang benar.
sumber
Yang berhasil bagi saya adalah menggunakan URL https repo Github alih-alih URL ssh . Saya pergi ke halaman proyek Github dan menyalin URL https ke clipboard saya, dan kemudian menempelkannya ke perintah kedua di bawah ini:
sumber
Betapa sakit di pantat!
masalah:
berubah karena alasan yang tidak diketahui git push menggunakan pengguna yang salah. Saya memiliki beberapa id pengguna git hub yang berbeda. Saya bekerja untuk 2 perusahaan yang berbeda dan juga memiliki nomor pelajar
Saya sedang mengerjakan mac. inilah yang akhirnya saya lakukan
1) hapus credential.helper
Sebuah. Anda perlu mencari tahu di mana credential.helper dikonfigurasi
b. setelah menemukan file ara yang benar hapus sebagai berikut
Sekarang di repo lokal saya, saya meretas file .git / config
aku berubah
untuk
sumber
Dalam kasus khusus saya, masalahnya adalah saya menggunakan
.netrc
untuk mengaksesgithub.com
dan dikonfigurasi dengan token dari pengguna lain:sumber
membersihkan gantungan kunci tidak membantu ... Saya harus
ssh-add -D
dan menambahkan kembali kunci denganssh-add <keyfile>
sumber
Saya memecahkan masalah ini dengan menghapus (atau mengganti nama menjadi * .bak) file id_rsa dan id_rsa.pub di MacOS High Sierra. Ide dari sini .
Saya memiliki pengalihan host khusus di ~ / .ssh / config yang harus diterapkan tetapi menggunakan pengguna yang salah sebelum saya mengganti nama kedua file ...
sumber
Itulah yang berhasil bagi saya:
sumber
Apa yang berhasil untuk saya menghapus repo dan menambahkannya lagi:
sumber
Saya memiliki masalah yang sama di windows10 bahkan setelah menghapus git saya, seperti @ user542833 mengatakan itu karena cache windows dan Anda harus menghapus kredensial Github di windows Anda
Credential Manager
dan ketika Anda mencoba lagi untuk mendorong, windows meminta kredensial Anda dan mengaturnya lagisumber
Baru saja menghabiskan 6 jam untuk memikirkan hal ini ketika mencoba mendorong ke repo halaman GitHub baru di akun baru.
Bahkan setelah mengatur config user.name dan user.email itu akan menjadi default ke akun utama saya.
Ini karena kunci ssh akan default ke id_rsa (akun utama saya).
Untuk menggunakan akun baru saya harus menjalankan:
ssh-add ~/.ssh/my_new_key
yang kemudian akan membuat git menggunakan kunci baru saat menekan.
sumber