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.