Contents

[BitBucket]做git pull一直問你輸入密碼

如果每次 git pullgit push 都被要求重新輸入 Bitbucket 帳號密碼,通常代表目前 repo 的連線方式還停留在 HTTPS,或認證快取沒有設好。這種問題手動操作時只是煩,但一旦放進自動化流程就會直接卡住。

先看目前是用哪種協定

第一步先檢查遠端設定:

1
git remote -v

如果看到的是:

1
https://bitbucket.org/...

那代表你現在走的是 HTTPS。這種模式下,Git 很常會要求你重新輸入認證資訊。

最穩的做法:改用 SSH

如果你已經把 SSH 公鑰上傳到 Bitbucket,建議直接把 repo 改成 SSH URL:

1
git remote set-url origin ssh://git@bitbucket.org/userName/repoName.git

改完之後再執行一次:

1
git remote -v

確認遠端已經換成 SSH 形式。

如果暫時不能用 SSH

有些環境沒辦法立刻處理 SSH key,這時可以先用認證快取減少重複輸入:

1
git config --global credential.helper 'cache --timeout 3600'

這樣 Git 會暫存一段時間的認證資訊,不用每次都打密碼。

不太建議的方式

把帳號密碼直接寫進 URL:

1
http://username:password@bitbucket.org/userName/repoName.git

雖然能動,但風險很高。只要 repo 設定外流、歷史命令被看到,帳密就一起暴露了。

實務上我會怎麼選

優先順序通常是:

  1. SSH key。
  2. 認證管理工具或 credential helper。
  3. 最後才考慮不太安全的替代方案。

因為 SSH 一旦設好,通常就是最省事也最適合長期使用的方式。

小結

git pull 一直要輸入密碼,多半不是 Git 壞掉,而是遠端連線協定和認證方式沒設定好。若是 Bitbucket 這類服務,最建議的解法還是改走 SSH,把一次性的設定做好,後面整個開發流程都會順很多。