Saya ingin melakukan perintah ini dalam satu baris:
git pull && [my passphrase]
Bagaimana cara melakukannya?
Saya ingin melakukan perintah ini dalam satu baris:
git pull && [my passphrase]
Bagaimana cara melakukannya?
Jawaban:
Ini tidak persis seperti yang Anda minta, tetapi untuk http (s):
https://user:pass@domain/repo
tetapi itu tidak benar-benar disarankan karena akan menunjukkan pengguna / pass Anda di banyak tempat ...Contoh penggunaan pembantu kredensial
git config credential.helper store
- menyimpan kredensial tanpa batas waktu.git config credential.helper 'cache --timeout=3600'
- simpan selama 60 menitUntuk akses berbasis ssh, Anda akan menggunakan agen ssh yang akan menyediakan kunci ssh bila diperlukan. Ini akan membutuhkan pembuatan kunci di komputer Anda, menyimpan kunci publik di server jarak jauh dan menambahkan kunci pribadi ke keystore yang relevan.
Saya menemukan satu cara untuk memberikan kredensial untuk koneksi https pada baris perintah. Anda hanya perlu menentukan URL lengkap untuk git pull dan memasukkan kredensial di sana:
git pull https://username:password@mygithost.com/my/repository
Anda tidak perlu memiliki repositori yang digandakan dengan kredensial sebelumnya, ini berarti kredensial Anda tidak akan masuk .git/config
. (Tapi pastikan shell Anda tidak mengkhianati Anda dan menyimpan baris perintah dalam file sejarah.)
:password
bagian tersebut, Anda akan diminta memasukkan kata sandi setelah menekan enter. Dengan begitu, kata sandi Anda tidak akan disimpan di riwayat bash.
Tidak menjawab pertanyaan secara langsung, tetapi saya menemukan pertanyaan ini ketika mencari cara untuk, pada dasarnya, tidak memasukkan kembali kata sandi setiap kali saya menarik server jarak jauh .
Nah, git
memungkinkan Anda untuk menyimpan kredensial Anda untuk waktu yang terbatas. Ini dapat disesuaikan git config
dan halaman ini menjelaskannya dengan sangat baik:
https://help.github.com/articles/caching-your-github-password-in-git/#platform-linux
Di terminal, jalankan:
$ git config --global credential.helper cache
# Set git to use the credential memory cache
Untuk menyesuaikan waktu tunggu cache, Anda dapat melakukan:
$ git config --global credential.helper 'cache --timeout=3600'
# Set the cache to timeout after 1 hour (setting is in seconds)
Kredensial Anda kemudian akan disimpan dalam memori selama waktu yang diminta.
Perhatikan bahwa cara "menyimpan" git credential helper menyimpan perubahan sandi yang tidak terenkripsi dengan Git 2.5+ (Q2 2014).
Lihat commit 17c7f4d oleh Junio C Hamano ( gitster
)
credential-xdg
Ubah sampel "
store
" backend kredensial pembantu untuk mengikuti lokasi file konfigurasi XDG saat ditentukan.
Dokter sekarang berkata:
Jika tidak ditentukan:
- kredensial akan dicari dari
~/.git-credentials
dan$XDG_CONFIG_HOME/git/credentials
, dan- kredensial akan ditulis
~/.git-credentials
jika ada, atau$XDG_CONFIG_HOME/git/credentials
jika ada dan yang sebelumnya tidak.
Di bawah cmd akan berfungsi jika kita tidak memiliki @ di kata sandi:
git pull https://username:pass@word@mygithost.com/my/repository
Jika Anda memiliki @ di kata sandi, gantilah dengan% 40 seperti yang ditunjukkan di bawah ini:
git pull https://username:pass%40word@mygithost.com/my/repository
Jika Anda ingin melakukan ini dalam skrip CI / CD di Gitlab ( gitlab-ci.yml
). Anda bisa menggunakan
git pull $CI_REPOSITORY_URL
yang akan diterjemahkan menjadi sesuatu seperti:
git pull https://gitlab-ci-token:[MASKED]@gitlab.com/gitlab-examples/ci-debug-trace.gi
Dan saya cukup yakin token yang digunakannya adalah token sementara / per pekerjaan - jadi celah keamanan dengan metode ini sangat berkurang.
Anda cukup menggunakan nama pengguna tidak perlu menggunakan kata sandi karena kata sandi akan diminta di git bash.
git pull https://username@github.com/username/myrepo