Saya ingin menggunakan push dan pull secara otomatis di GitExtension, tanpa memasukkan user dan password pada prompt, setiap waktu.
Jadi bagaimana saya bisa menyimpan kredensial saya di GIT?
Menjalankan
git config --global credential.helper store
kemudian
git pull
memberikan username dan password dan rincian tersebut kemudian akan dikenang nanti. Kredensial disimpan dalam file pada disk, dengan izin disk yang "hanya pengguna yang dapat dibaca/ditulis" tapi masih dalam plaintext.
Jika anda ingin mengubah password kemudian
git pull
Akan gagal, karena password salah, git kemudian menghilangkan menyinggung user+password dari ~/.git-kredensial
file, jadi sekarang re-run
git pull
untuk memberikan password baru sehingga bekerja seperti sebelumnya.
Anda dapat menggunakan git config` untuk mengaktifkan penyimpanan kredensial di git.
git config --global credential.helper store
Saat menjalankan perintah ini, pertama kali anda menarik atau mendorong dari remote repositori, anda'll mendapatkan ditanya username dan password.
Setelah itu, untuk konsekuen komunikasi dengan remote repositori anda don't harus memberikan username dan password.
Format penyimpanan adalah .git-kredensial
file, disimpan dalam plaintext.
Juga, anda dapat menggunakan pembantu lainnya untuk git config credential.pembantu
, yaitu memori cache:
git config credential.helper cache <timeout>
yang mengambil opsional timeout parameter
,
menentukan untuk berapa lama kredensial yang akan disimpan dalam memori. Menggunakan helper, kredensial tidak akan pernah menyentuh disk dan akan dihapus setelah waktu tertentu. Default
nilai lebih 900 detik (15 menit).
PERINGATAN : Jika anda menggunakan metode ini, anda git akun password akan disimpan dalam plaintext
format, di global .gitconfig file
, e.g di linux itu akan menjadi /home/[username]/.gitconfig
Jika hal ini tidak diinginkan untuk anda, menggunakan ssh key
untuk akun anda sebagai gantinya.
Di Terminal, masukkan perintah berikut:
# Set git to use the credential memory cache
git config --global credential.helper cache
Secara default, Git akan cache password anda selama 15 menit.
Untuk mengubah password default cache timeout, masukkan berikut ini:
# Set the cache to timeout after 1 hour (setting is in seconds)
git config --global credential.helper 'cache --timeout=3600'
Dari GitHub Help
Anda dapat mengedit `~/.gitconfig file ke toko anda kredensial
sudo nano ~/.gitconfig
Yang harus sudah memiliki
[user]
email = [email protected]
user = gitUSER
Anda harus menambahkan di bagian bawah file ini.
[credential]
helper = store
Alasan saya merekomendasikan opsi ini karena itu adalah global dan jika pada titik tertentu anda perlu untuk menghapus pilihan anda tahu ke mana harus pergi dan mengubah itu.
HANYA GUNAKAN PILIHAN INI PADA ANDA KOMPUTER PRIBADI.
Kemudian ketika anda tarik | clone| masukkan anda git password, secara umum, password akan disimpan dalam ~/.git-kredensial
dalam format
https://GITUSER:[email protected]
MANA DOMAIN.XXX BISA GITHUB.COM | BITBUCKET.ORG | LAIN-LAIN
Lihat Docs
Untuk global setting, buka terminal (dari mana saja) jalankan berikut:
git config --global user.name "your username"
git config --global user.password "your password"
Oleh itu, setiap lokal git repo yang anda miliki di komputer anda akan menggunakan informasi tersebut.
Anda dapat secara individual config untuk setiap repo dengan melakukan:
git config user.nama "username" git config user.password "password"
Itu hanya mempengaruhi folder itu (karena anda konfigurasi lokal).
Hanya menempatkan kepercayaan anda dalam Url seperti ini:
https://Username
:Password
@github.com/myRepoDir/myRepo.git
Anda mungkin toko seperti ini:
git remote add myrepo https://Userna...
...contoh untuk gunakan **** itu:
git push myrepo master
Sekarang yang Daftar url alias:
git remote -v
...dan bahwa perintah untuk menghapus salah satu dari mereka:
git remote rm myrepo
Anda dapat menggunakan git-kredensial-toko untuk menyimpan password terenkripsi pada disk, yang hanya dilindungi oleh hak akses dari file sistem.
Contoh
$ git config credential.helper store
$ git push http://example.com/repo.git
Username: <type your username>
Password: <type your password>
[several days later]
$ git push http://example.com/repo.git
[your credentials are used automatically]
Anda dapat memeriksa kredensial disimpan dalam file ~/.git-kredensial
Untuk info lebih lanjut kunjungi git-kredensial-toko - Helper untuk toko kredensial pada disk
Anda akan lebih aman jika anda menggunakan otentikasi SSH dari username/password otentikasi.
Jika anda menggunakan Mac, SSH klien otentikasi terintegrasi ke MacOS gantungan kunci. Setelah anda telah membuat SSH key, ketik dalam terminal:
ssh-add -K ~/.ssh/id_rsa
Hal ini akan menambah SSH kunci pribadi untuk MacOS gantungan kunci. Git client akan menggunakan ssh ketika menghubungkan ke server remote. Selama anda terdaftar ssh public key dengan server, anda akan baik-baik saja.
Dalam kasus anda perlu git credential penolong untuk memberitahu git untuk mengingat GitHub password dan username dengan menggunakan baris perintah berikut :
git config --global credential.helper wincred
dan jika anda menggunakan repo menggunakan SSH key maka anda perlu SSH key untuk mengotentikasi.
Tidak ada jawaban di atas bekerja untuk saya. Aku terus mendapatkan berikut setiap kali saya ingin mengambil
atau menarik
:
Masukkan kata sandi untuk kunci '/Pengguna/myusername/.ssh/id_rsa':
Untuk Mac
Saya bisa berhenti dari meminta saya passphrase oleh:
vi ~/.ssh/config
UseKeychain ya
:wq!
Untuk Windows
Saya bisa mendapatkan itu untuk bekerja menggunakan info ini di stackexchange: https://unix.stackexchange.com/a/12201/348665
Setelah terjadi atas puluhan BEGITU posting, blog, dll, saya mencoba keluar setiap metode, dan ini adalah apa yang saya datang dengan. Ini mencakup SEGALA sesuatu.
Ini semua adalah cara-cara dan alat-alat dengan mana anda dapat dengan aman melakukan otentikasi git clone repository tanpa interaktif password prompt.
Ingin Hanya Bekerja™? Ini adalah keajaiban peluru perak.
Dapatkan Akses Token anda (lihat bagian di cheatsheet jika anda membutuhkan Github atau Gitea petunjuk untuk itu) dan mengaturnya dalam sebuah variabel lingkungan (baik untuk lokal dev dan penyebaran):
bash MY_GIT_TOKEN=xxxxxxxxxxxxxxxx
Untuk Github, copy dan menjalankan garis-garis ini verbatim:
bash git config --global url."https://api:[email protected]/".bukan "https://github.com/" git config --global url."https://ssh:[email protected]/".bukan "ssh://[email protected]/" git config --global url."https://git:[email protected]/".bukan "[email protected]:"
Selamat, sekarang ada alat otomatis kloning git repositori won't akan terhalang oleh password prompt, apakah menggunakan https atau baik gaya ssh url.
Tidak menggunakan Github?
Untuk platform lain (Gitea, Github, Bitbucket), hanya mengubah URL. Don't mengubah nama pengguna (meskipun sewenang-wenang, mereka're dibutuhkan untuk berbeda config file).
Kompatibilitas ****
Ini bekerja secara lokal di MacOS, Linux, Windows (di Bash), Docker, CircleCI, Heroku, Akkeris, dll.
Info Lebih Lanjut
Melihat ".gitconfig, bukan" bagian dari cheatsheet.
Keamanan
Melihat "Keamanan" bagian dari cheatsheet.
Selain mengedit `~/.gitconfig file, yang dapat anda lakukan jika anda bertanya:
git config --local --edit
atau
git config --global --edit
git config --local user.name 'your username'
git config --local user.password 'your password'
atau
git config --global user.name 'your username'
git config --global user.password 'your password'
Username dan password dapat menggunakan beberapa karakter yang akan memecahkan password anda jika anda menggunakan tanda kutip ganda.
--lokal
atau --global
berarti konfigurasi params disimpan untuk proyek atau untuk pengguna os.
Dari komentar oleh rifrol, di Linux Ubuntu ini jawaban:
sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
Beberapa distro lainnya's menyediakan biner sehingga anda don't harus membangun itu.
Di OS X itu biasanya datang "membangun" dengan default modul "osxkeychain" jadi anda mendapatkannya secara gratis.
.git-kredensial
adalah di mana username dan password anda disimpan ketika anda menjalankan git config --global credential.pembantu store`, yang lain apa jawaban sarankan, dan kemudian ketik username dan password anda:
https://${username}:${password_or_access_token}@github.com
Jadi, dalam rangka untuk menyimpan username dan password:
git config --global credential.pembantu toko echo "https://${username}:${password_or_access_token}@github.com" > ~/.git-kredensial
Hal ini sangat berguna untuk github robot, misalnya untuk memecahkan Rantai otomatis membangun di kawasan yang sama dengan docker repository dengan memiliki aturan-aturan untuk berbagai cabang dan kemudian memicu itu dengan mendorong ke dalam post_push
pelacur di docker hub.
Contoh ini dapat dilihat di sini di stackoverflow.
hanya menggunakan
git config --global credential.helper store
dan melakukan git pull, ia akan meminta username dan password, mulai sekarang hal itu tidak akan memberikan prompt untuk username dan password ini akan menyimpan rincian