[英]Change the Account that is used to git pull origin
我已經嘗試檢查幾個 SO 問題和答案,但仍然無法解決我的問題。 場景是這樣的:
User A with Git Account A git cloned repo to freshly installed server.
Because of this, the git account that was registered on the server was User A.
(If I understood it correctly. please correct me if I am wrong in this part)
Now I would like to use User B with Git Account B as commiter/puller/pusher to the server.
我嘗試的是使用以下命令更改用戶和 email:
git config --global user.name "userb"
git config --global user.email "userb@gmail.com"
git config --local user.name "userb"
git config --local user.email "userb@gmail.com"
git config user.name "userb"
git config user.email "userb@gmail.com"
在 3 個不同的場合。 仍然無法解決我的顧慮。 我可以使用命令git config --list
、 git config user.name
和git config user.email
查看更新后的用戶和 email,所以我知道該值確實發生了變化。
如果這不可能,我也在考慮一起刪除帳戶並在拉/推時輸入用戶/電子郵件和密碼而不刪除 git 歷史記錄。
你做錯了事。 您正在嘗試更改用於標記您的提交的用戶名,而您必須重置您的 git 用戶帳戶憑據。
在 Linux 問題git config --unset credential.helper
下,在 Windows 下通過 Windows 憑據管理器刪除憑據。
具有 Git 帳戶 A git 的用戶 A 將 repo 克隆到新安裝的服務器。 因此,在服務器上注冊的git賬號就是用戶A。
沒有。Git 客戶端(如git clone
)將使用兩種常見/標准傳輸機制與 Git 服務器通信:
這些機制不是由 Git 本身提供的,而是由某種訪問包裝器提供的:web 服務器或sshd
。
此時,客戶端已通過服務器的身份驗證,直到現在 Git 本身才真正進入畫面。 服務器的 Git 軟件將服務器存儲庫中的每個提交都交給客戶端(以便客戶端擁有所有提交),並向客戶端顯示所有分支名稱(客戶端然后將其更改為遠程跟蹤名稱,以便客戶端有所有提交,根本沒有分支)。 然后客戶端與服務器斷開連接,在新的 Git 存儲庫中創建一個分支,並完成。
這里唯一保留的是客戶端用來到達服務器的 URL。 這個 URL 保留在客戶端剛剛創建的 Git 存儲庫中。 除非服務器保留日志(通過其 web 服務器和/或 sshd), 2服務器現在在所有客戶端都沒有記錄。
下次客戶端需要與服務器對話時,客戶端會提供 URL,它已方便地保存在簡稱origin
下。 3此 URL可能包含用戶名,特別是如果您使用 https:// URL。
所以:檢查 URL,使用git remote -v
,找出您使用的是哪個協議,如果該協議是https://
,則 URL 中嵌入了一個用戶名。如果是,您可以編輯或刪除該用戶名。 如果不是,並且 URL 是https://
URL,請繼續Antonio Petricca 的回答。 如果 URL 是ssh://
之一,請查看 ssh 身份驗證。
1在某些服務器上,用戶使用自己的帳戶登錄,但對於通常的 GitHub、GitLab 和 Bitbucket 設置,用戶提供通用用戶名git
。 因此,服務器必須使用這個公鑰技巧來弄清楚用戶聲稱是誰。
2大多數服務器確實保留日志,但這取決於服務器,它們最多用於審計和安全。 它不會影響將來連接到服務器的嘗試,除非運行服務器的人員發現您的連接令人擔憂並阻止它。
3你可以選擇其他名字,但沒有理由這樣做,而且你大概也沒有這樣做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.