Kata sandi GitHub telah diubah, tidak lagi dapat mendorong kembali ke remote

111

Setelah saya mengubah kata sandi GitHub saya, saya tidak dapat melakukan push ke remote:

$ git push origin master
remote: Invalid username or password.

Apakah hanya ada repositori ulang?

kenu.heo
sumber
Hapus saja dan tambahkan remote lagi
onmyway133
1
Betulkah? "Hapus saja dan tambahkan remote lagi"? Memulai dari awal tidak nyaman dan rawan kesalahan dalam beberapa operasi.
Jason S
1
Ini juga dapat terjadi setelah mengaktifkan otentikasi dua faktor, dalam hal ini Anda harus mengikuti instruksi di sini: stackoverflow.com/a/34919582/2898283
mechatroner
@JasonS Menambahkan kembali remote sama sekali bukan "memulai dari awal". Ini hanya akan mengubah salinan lokal dari cabang jarak jauh, yang toh tidak Anda modifikasi secara langsung; semua cabang lokal akan tetap utuh, meskipun saya tidak yakin apakah pelacakan akan terpengaruh.
jpmc26
@ jpmc26 Yang saya maksud bukan konten repositori, maksud saya menambahkan kembali URL.
Jason S

Jawaban:

187

Jika kata sandi jarak jauh Anda hanya diubah, bukan nama penggunanya, maka coba perintah berikut untuk memeriksa info jarak jauh: -

asal acara git jarak jauh

Ini akan meminta kata sandi Anda untuk pengguna git yang diberikan, mengisinya dengan benar, dan sekarang coba: -

git pull

atau,

git push

Ini seharusnya berfungsi kecuali Anda harus mengubah hal-hal lain seperti nama pengguna atau URL jarak jauh, Anda dapat melihat dokumentasi Git berikut: -

https://help.github.com/articles/setting-your-username-in-git/

https://help.github.com/articles/changing-a-remote-s-url/

Amit
sumber
9
Ini bekerja untuk saya. git remote show originmenunjukkan prompt
Lazaro Fernandes Lima Suleiman
14
Menarik - git remote show origintidak mendorong saya, itu hanya- showsaya, jadi saya pikir itu gagal (pada apa yang saya perlu lakukan). Tapi, untuk berjaga-jaga, saya kemudian mencoba git push origin masterdan itu mendorong saya. Jadi ... Saya masih sampai di tempat yang saya
inginkan
1
Mencoba ini dengan IntelliJ dan Android Studio, dan keduanya tidak berfungsi tanpa restart, mungkin karena kredensial di-cache. Saya mengedit jawaban untuk mencerminkan ini.
Oliver Hausler
2
Bekerja seperti yang dijelaskan untuk saya.
muncul
2
Bekerja seperti yang diharapkan di Mac. Harus diterima jawaban.
Aakanksha
38

Untuk memperbarui kata sandi di Terminal Anda. Coba perintah di bawah ini, Ini akan meminta Anda kata sandi lagi.

git push -u origin master
hiddenpearls
sumber
37

The OP kenu.heo telah bekerja di sekitar masalah ini dengan menghapus, kemudian kembali kloning repo.

Tetapi untuk lainnya:

Itu tergantung pada OS Anda, versi git dan protokol yang Anda gunakan.

Bergantung pada OS, Anda memiliki cara untuk menyimpan kredensial Anda ( OSX KeyChain di Mac , pembantu kredensial netrc di Windows atau Linux ), dan itu dapat menjelaskan mengapa push Anda tidak berfungsi setelah mengubah kata sandi GitHub Anda.
Untuk rantai kunci, Anda perlu mengatur ulang kata sandi yang disimpan di dalamnya .

Masalah kata sandi itu juga menunjukkan bahwa Anda menggunakan url https (bukan yang ssh, yang akan bergantung pada kunci ssh publik / pribadi, dan tidak akan dipengaruhi oleh kata sandi akun GitHub, karena kunci SSH publik terdaftar ke akun GitHub Anda tidak akan berubah).

Periksa itu dengan a git remote -v.

Anda dapat memaksa git untuk menggunakan login GitHub Anda dengan:

git remote set-url origin https://[email protected]/Username/MyRepo.git

(ganti ' Username' dan ' MyRepo.git' dengan nilai Anda sendiri)

Kemudian coba lagi untuk mendorong, itu akan meminta kata sandi GitHub Anda. Masukkan yang baru.

Jika ini tidak berhasil, periksa apakah Anda telah mengaktifkan 2FA (2-Form Authentication). Jika demikian, Anda perlu membuat PTA (Personal Token Access).
Lihat selengkapnya di " Konfigurasi klien Git, seperti GitHub untuk Windows, agar tidak meminta otentikasi ".

VonC
sumber
Terima kasih, saya menggunakan MacOSX, git 1.8.x. Saya bekerja dengan menghapus repo lokal, lalu merebahkannya.
kenu.heo
2
@ kenu.heo ok. Saya telah mengedit jawaban untuk memasukkan kesimpulan Anda, tetapi saya juga menambahkan elemen yang dapat membantu orang lain.
VonC
git remote set-url origin https://github.com/shared_repo/shared_repo.gitbekerja untuk saya di Windows dari Git Shell
Choylton B.Higginbottom
Bekerja pada Ubuntu 16.04 LTS.
sd
22

Di Sistem Windows tidak ada langkah yang berhasil untuk saya, masalahnya adalah kredensial disimpan di Windows Credentials Manager.

Anda dapat pergi ke Control Panel -> User Account -> Credential Manager -> Windows Credentials

Di bawah Kredensial Generik Anda akan menemukan git Url Anda, perluas pilihan dan klik edit.

Setelah diedit, cukup picu git push lagi dan itu akan berfungsi.

Sumber informasi: - Hapus kredensial dari Git

Getah
sumber
1
Saya dapat mengonfirmasi hal yang sama pada Windows 10.
tmsss
Ini berhasil untuk saya. Windows menyimpan kredensial git dan setelah memperbarui kata sandi untuk Windows, akun git resmi saya tidak dapat disinkronkan.
Krishna Oza
16

Dari apa yang saya alami, Anda hanya perlu memasukkan kembali remote-addr .

Dan git akan meminta usr / password untuk yang baru daripada berdiam diri dan menggunakan yang sudah usang.

lihat remote Anda, cari mana yang ingin Anda ubah

>git remote  
github
gitcafe
company

misalnya, jika Anda mengubah sandi repo perusahaan, Anda dapat melakukan:

>git remote remove company

Ini tidak akan menyentuh folder Anda , tidak akan menyentuh komitmen Anda . Ini hanya menghapus string url dari git

Lalu, tambahkan url ini lagi:

>git remote add company https://git.AyCramba.com/xxx.git

Dorong ke sana:

>git push company master
username for 'https://git.AyCramba.com':
password for 'https://git.AyCramba.com':

Kemudian mulai mendorong

Semoga membantu.

Chiron
sumber
1
Yang git remote set-urlsaya sebutkan dalam jawaban saya tidak menghapus + menambahkan.
VonC
3

Nama pengguna dan kata sandi dapat disimpan di Windows Credential Manger. Periksa dan perbarui di sana, jika perlu.

(Saya tahu itu agak jelas dan sederhana, tetapi mungkin membantu beberapa orang.)

squicc
sumber
2

Bagi saya, menjalankan git di Windows7 menggunakan git-bash, menjalankan:

git push origin master

Berhasil. Itu mendorong Windows7 untuk meminta lagi kredibilitas git saya, dan kemudian menyimpannya (di mana pun Windows melakukannya), untuk memperbarui kata sandi.

Eric Manley
sumber
1

Oke, postingan asli cukup lama, tetapi ini hasil teratas di Google dan tidak ada jawaban yang berhasil untuk saya. Beberapa pos SO dan GH lainnya juga tidak berfungsi. Posting ini untuk membantu siapa pun yang mengikuti saya di sini!

Situasi saya sedikit berbeda: Akun GH pribadi, mendorong ke repo Perusahaan pribadi, menggunakan SSH dan baris perintah git di Mac. Kata sandi saya tidak disimpan baik di saya .gitconfigmaupun di rantai kunci apa pun atau di git credential.helper.

Dalam contoh di bawah PersonalName adalah akun GH saya, CompanyName adalah perusahaan (pemilik repo di GH) dan RepoName adalah repositori.

Pesan kesalahan asli saya juga agak berbeda: mencoba git push origin mastermenghasilkan

remote: Repository not found.
fatal: repository 'https://github.com/CompanyName/RepoName.git/' not found

Remote berfungsi sebelum kata sandi GH saya berubah, dan saya tidak ingin menghapus remote karena saya memiliki perubahan lokal yang perlu saya tekan.

Akhirnya, balasan oleh seveas untuk pertanyaan ini di Forum Komunitas GitHub mengarahkan saya ke arah yang benar. Kuncinya adalah menautkan nama akun GH saya dengan repo jarak jauh (pribadi).

Ini berhasil untuk saya:

git remote set-url origin https://[email protected]/CompanyName/RepoName.git

Kemudian

git remote show origin

diminta dengan

Password for 'https://[email protected]': 

Saya bisa memasukkan kata sandi baru saya, melihat detail jarak jauh dan git push origin masterberhasil.

Papan tulis
sumber
0

Jika Anda telah menyiapkan Github 2FA Auth, Anda memerlukan token akses pribadi (sebagai ganti sandi github Anda di git cli), ikuti petunjuk ini untuk membuatnya: https://help.github.com/en/github/authenticating-to -github / membuat-a-akses-pribadi-token-untuk-baris-perintah

Kemudian lakukan sesuatu seperti

git checkout master

git pull origin <--- Pada titik ini Anda akan dimintai kredensial Anda, masukkan pengguna github normal Anda dan sebagai kata sandi, tempel token yang dibuat pada tautan di atas.

Fernando Gonzalez Sanchez
sumber