farklı git depoları için kullanıcı adı ve parolalar nasıl ayarlanır?


19
─[$] cat ~/.gitconfig

[user]
    name = Shirish Agarwal
    email = xxxx@xxxx.xxx
[core]
    editor = leafpad
    excludesfiles = /home/shirish/.gitignore
    gitproxy = \"ssh\" for gitorious.org
[merge]
    tool = meld
[push]
    default = simple
[color]
    ui = true
    status = auto
    branch = auto

Şimdi github, gitlab ve gitorious için git kimlik bilgilerimi koymak istiyorum, böylece her seferinde tarayıcıda kimlik bilgilerini aramak zorunda değilim. Bu nasıl otomatik hale getirilebilir?

Zsh kullanıyorum

Yanıtlar:


21

SSH Kullanımı

Git kimlik doğrulaması ile ilgili genel yaklaşım, SSH'ye delege etmektir. Genellikle SSH genel anahtarınızı uzak depoda ( örneğin GitHub'da ) ayarlarsınız ve kimlik doğrulaması gerektiğinde bunu kullanırsınız. Masaüstü ortamınız tarafından yönetilen veya ssh-agentve ile manuel olarak anahtar aracı kullanabilirsiniz ssh-add.

Kullanıcı adını belirtmekten kaçınmak için SSH'de de ~/.ssh/config; örneğin bende var

Host git.opendaylight.org
  User skitt

ve sonra klonlayabilirim

git clone ssh://git.opendaylight.org:29418/aaa

(orada bir kullanıcı adı bulunmadığına dikkat edin).

kullanma gitcredentials

SSH yaklaşımı geçerli değilse ( örn . HTTPS üzerinden erişilen bir depo kullanıyorsanız), git gitcredentials(ve tipik olarak git-credential-store) kullanarak kimlik bilgilerini işleme konusunda kendi yöntemine sahiptir . Kullanıcı adınızı kullanarak

git config credential.${remote}.username yourusername

ve kimlik bilgisi yardımcısı

git config credential.helper store

( --globalbu kurulumu her yerde kullanmak isteyip istemediğinizi belirtin ).

Daha sonra bir depoya ilk kez eriştiğinizde git, şifrenizi soracak ve saklanacaktır (varsayılan olarak ~/.git-credentials). Depoya daha sonra erişmek, size sormak yerine saklanan parolayı kullanır.


1
credential.${remote} ve hakkında biraz ayrıntı verebilir misiniz credential.helper? Bu konuda ilk kez okuduğum için işaret edebileceğiniz bazı belgeler var mı?
shirish

Cevabımdaki sayfalarla bağlantı kurdum, dokümantasyon bu. ${remote}klonlamak istediğiniz URI'nin protokol ve ana bilgisayar adı kısmıdır, helperbir yardımcı programa işaret eder.
Stephen Kitt

1
Ayrıca konu hakkında Pro Git'in bir bölümü var .
Stephen Kitt

7

Bunu daha sonra bulanlar için - Bununla ilgili zorluklar yaşadım ve sonunda işe yaradı

https / credentials.helper / Ubuntu

  1. Global Olarak Ayarla:
    git config --global --unset credentials.helper
  2. Yerel olarak ayarlama: (Her depoda) git config --unset credential.helper
  3. Her repo için kimlik bilgisi dosyası oluşturun: (her repo içinde)

    git config credential.helper 'store --file ~/.git_reponame_credentials'
    

En iyi yol ya da tek yol olduğunu söylememek - ama birkaç sinir bozucu saat sonra benim için çalıştı.


stephen kitt'in yukarıda paylaştığı şeye benziyor gibi görünüyor.
şirish

2
@shirish gerçekten değil, üçüncü nokta ihtiyacım olan tek şeydi - dosyaların nerede bulunduğunu belirtmek için seçenek.
Mārtiņš Briedis

@shirish; Ayrıca, Kitts talimatları, bunları zaten global olarak ayarladığımdan beri benim için çok önemli bir bileşen olan kimlik bilgilerini ayarlamayı belirtmiyor.
SteveJ

Tüm git depoları gibi değil ben de bu konuda zorluk vardı. aynı kaynaktan / mağazadan alırsınız. İkincisi, gerçekte çalışmak için daha iyi ama çok daha canlandırıcı. Yine de paylaştığın için teşekkürler. @SteveJ
shirish
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.