Bagaimana cara mengganti pengguna git di terminal?

46

Saya mencoba untuk mendorong proyek ke repositori jarak jauh dari baris perintah.

Dari dalam direktori lokal saya, saya menekan:

$ git push

dan dapatkan kesalahan berikut:

remote: Izin untuk nama pengguna1 / repo.git ditolak untuk nama pengguna2.
fatal: tidak dapat mengakses ' https://github.com/username1/repo.git/ ':
URL yang diminta menghasilkan kesalahan: 403

Di mana username1nama pengguna akun github saya menampung repositori yang ingin saya dorong dan username2akun lama yang saya gunakan di mesin ini.

Saya menggunakan OS X Yosemite (v10.10.5) di Macbook Air. Dan saya lebih suka menggunakan https daripada ssh .

Bagaimana cara saya memperbarui username1sehingga saya dapat berhasil mendorong ke remote saya?

Sunting: Agar jelas, saya tidak berbicara tentang hanya mengedit config userobjek, misalnya,

$ git config --global user.name "Billy Everyteen"
$ git config --global user.email "[email protected]"

Mereka tidak ada hubungannya dengan otentikasi. Pertanyaan saya berkaitan dengan otentikasi pengguna yang diperlukan untuk menulis ke repositori jarak jauh saya.

Mowzer
sumber
Terima kasih. Tapi itu hanya berkaitan dengan pengaturan nama pengguna. Bukan otentikasi. Dengan kata lain, dokumentasi itu menunjukkan kepada kita bagaimana menghubungkan nama siapa yang mendapat pujian atas komitmen tersebut. Tetapi itu tidak benar-benar mengotorisasi pengguna untuk mendorong komit.
Mowzer
1
Anda mungkin dapat mengubahnya dengan menggunakan perintah yang didokumentasikan di git-scm.com/docs/gitcredentials . Atau, jika Anda ingin menghapus kredensial, Anda dapat melihat pertanyaan ini stackoverflow.com/questions/15381198/… .
John
Ini tidak menyelesaikan masalah!
Mihail Salari
bagaimana jika saya tidak ingin mengubah pengaturan git lokal?
Arkady

Jawaban:

42

Selain mengubah nama pengguna dan email dari terminal menggunakan git config:

$ git config --global user.name "Bob"
$ git config --global user.email "[email protected]"

Anda harus menghapus info otorisasi dari Keychain. Ini adalah sesuatu yang saya juga berjuang dengan sampai saya menemukan bahwa saya juga memiliki sertifikat di gantungan kunci saya.

Buka akses Keychain, klik Semua Barang dan cari git. Anda akan mendapatkan beberapa item seperti ini:

Tangkapan layar

Hapus mereka. Sekarang cobalah untuk mendorong repo dan git akan meminta Anda untuk menulis kata sandi untuk pengguna dan Anda akan baik-baik saja.

Kata Sikira
sumber
1
Bagaimana dengan pengguna Windows?
Aks ..
2
saya punya banyak akun apa yang harus saya lakukan
Amerrnath
Saya mengalami masalah yang sama dengan win7. Saya tidak yakin apa solusinya :(
Fiddle Freak
22

Untuk pengguna cli, cukup gunakan ini: git config credential.username 'Billy Everytee'

Jackman
sumber
Anda perlu menonaktifkan 2FA untuk sementara.
bbaassssiiee
10

Untuk Pengguna Windows:
Ikuti Petunjuk:
Panel Kontrol >> Akun Pengguna >> Manajer Kredensial >> Kredensial Windows >> Kredensial Generik

hapus kredensial git.
lain kali ketika Anda akan mendorong repo itu akan meminta Anda untuk kredensial.
Referensi jawaban untuk penjelasan terperinci

Shubham Chadokar
sumber
Terima kasih! Itulah yang saya cari di Windows.
JCF
@JCF Selamat Datang! Saya senang itu membantu!
Shubham Chadokar
6

Daftar konfigurasi git Anda.

git config --list

Ubah nama pengguna dan email global

git config --global user.name "Nanhe Kumar"
git config --global user.email "[email protected]"

Ubah nama pengguna dan email untuk repo saat ini

git config  user.name "Nanhe Kumar"
git config  user.email "[email protected]"

Ubah url repo Anda jika Anda menggunakan bit bucket.

nano .git/config

File ini akan menjadi seperti ini. [core] repositoryformatversion = 0 fileMode = false bare = false logallrefupdates = true ignorecase = true precomposeunicode = true [remote "origin"] url = https://[email protected]/nanhekumar/myproject.git fetch = +refs/heads/*:refs/remotes/origin/* [branch "master"] remote = origin merge = refs/heads/master

[user]
        name = Nanhe Kumar
        email = [email protected]
Nanhe Kumar
sumber
Ini adalah jawaban yang paling menyeluruh mengingat ruang lingkup repo global dan lokal.
Jordan Stefanelli