1. 程式人生 > >git push的時候沒有許可權問題的解決辦法

git push的時候沒有許可權問題的解決辦法

這裡主要說一下git的https連結無法互動的問題,我在編碼(因為free,所以沒用github)上建立了私有Repo之後根本無法push(私有Repo連克隆都不行),因為大神給的demo in和遠端倉庫互動的時候用的是https連結,為什麼我也用https連結就不可以呢?
後來嘗試使用ssh連結,然後重新配置公鑰上傳到coding.net上,就解決了和遠端倉庫互動的問題。可是換回https連結之後就不可以了(因為ssh連結會報防火牆的警告,雖然沒什麼大影響,但是我有病,非想試試https)。

如果Repo的連結是https的話,我總會得到這個錯誤:
這裡寫圖片描述
unable to access ’

https://git.coding.net/xxxx/xxxx.git/ ‘: The requested URL returned error: 403
當然https肯定要輸入使用者名稱和密碼的,它就是靠這個去校驗的。我也想輸入啊,可是系統不給我機會。後來隨便在github上建立了公有庫,讓同事克隆下來,然後推,這個時候是需要他輸入使用者名稱和密碼的。但是第一次輸入密碼後,就不會再提醒他再次輸入了。顯而易見是因為我的電腦快取了我的github使用者名稱和密碼,所以才千萬次的報403錯誤。
二,理解git使用者名稱密碼快取原理
為了方便git使用https方式傳輸程式碼的時候不用每次都輸入使用者名稱和密碼,所以一般git會儲存使用者的使用者名稱。儲存方式有快取快取,儲存在硬碟儲存,和儲存在鑰匙串osxkeychain中。

這篇文章翻譯了git關於憑證的介紹,裡面詳細說明了git是如何尋找使用者輸入過的使用者名稱和密碼的,可以看一下明白git記錄密碼的原理。如果你不想看這篇文章,那麼大概理解幾個概念就好:

  1. git去找系統是否快取了使用者的密碼有三種策略:去快取中找,去磁碟中找,去鑰匙串中找。
  2. /Users/xxx/.gitconfig檔案中(這個檔案如果沒設定過git的全域性配置可能會不存在),配置了git到底選擇哪個策略去找使用者名稱和密碼。
    3.通過編輯.gitconfig檔案,credential.helper = store / cache / osxkeychain來修改git快取策略。

理解了上面的概念後可以執行這個命令檢視自己系統支援的crendential(憑證),
這裡寫圖片描述


git help -a | grep credential
得到結果:
這裡寫圖片描述
然後可以執行
這裡寫圖片描述
git config –list
檢視自己電腦的git的全域性配置,可以看到credential.helper =(你自己電腦的配置)
如果你轉換到git專案的資料夾裡再使用git config –list可以看到對應專案的配置資訊,紅色是電腦的全域性憑證配置,綠色的是當前git專案的憑證配置(可以多個)
這裡寫圖片描述
三,解決問題
1.清空配置
知道了這些之後,再解決這個問題就簡單了,既然git是依靠credential.helper配置去找使用者名稱密碼,那我直接不用這個配置不就要求重新輸入使用者名稱和密碼了嗎?開啟/ Users / xxx /.gitconfig檔案,如果顯示隱藏檔案後還是找不到這個檔案,那麼可以使用以下任意的命令,成功後會在你的主路徑下出現這個檔案,
這裡寫圖片描述
執行這些命令後就能生成.gitconfig配置檔案,然後文字編輯器開啟.gitconfig檔案,清除裡面的命令列生成的內容。

如果你的電腦本來就有.gitconfig檔案,找到下面這句話刪除,儲存退出。
這裡寫圖片描述
這個時候輸入命令
這裡寫圖片描述
檢視本機的憑證是否已經被清空。

如果輸入了git config credential.helper命令之後還是出現了osxkeychain,store或者cache等,說明git的配置還是沒有被清空,我參考了stackOverFlow上這個問題有人給了這樣一個命令檢視credential.helper所在的檔案目錄(可能一個電腦上有多個的.gitconfig檔案),
這裡寫圖片描述
如果你的蘋果上還有Xcode中的話,那麼Xcode的中還會有一個的.gitconfig檔案,找出他然後開啟,清空[憑證。
再次輸入
這裡寫圖片描述
git config credential.helper
如果沒有任何反應,那麼憑證就是已經清空了,這個時候你無論在任何依託git的程式碼託管網站上推都都要求你輸入使用者名稱和密碼了,而且每次都會要求你輸入,是不是又有新的煩惱了呢?

2.重新配置
理解了git儲存密碼的原理,那我們可以按照自己的想法設定了,如上所述,可以設定成cache,store,keychain,這裡我說下儲存在磁碟中(store)和鑰匙串中(keychain)兩種方式。
配置成店
命令
這裡寫圖片描述
git config –global credential.helper store
或者/Users/xxx/.gitconfig開啟.gitsonfig直接修改檔案credential.helper =儲存
這裡寫圖片描述
然後第一次推送的時候會提示輸入使用者名稱密碼,輸入完成之後/ Users / xxx /資料夾下會生成一個新的檔案.git-credentials,雙擊開啟,裡面儲存了你的使用者名稱密碼等資訊:
這裡寫圖片描述
https://使用者名稱:密碼@網址
但是這種儲存方式,在本地只會儲存一個使用者名稱和密碼,例如我本地的.git的憑據檔案的內容是
https://使用者名稱1:密碼[email protected]
這裡寫圖片描述
那我如果想推到github上,又要重新輸入使用者名稱密碼,你可以再次在.git-credentials檔案中新增一個url,格式是一樣的,這次的使用者名稱和密碼改成你的github使用者名稱和密碼

https://使用者名稱2:密碼[email protected]

注意:如果在設定成全球商店之前/使用者/ xxx /資料夾中如果已經有了.git-credentials檔案,最好先刪除,防止系統自動去那裡尋找使用者名稱密碼。

配置成osxkeychain
命令
這裡寫圖片描述
git config –global credential.helper osxkeychain
也或者/Users/xxx/.gitconfig開啟.gitconfig直接修改檔案。

這個時候git是從你的鑰匙串中訪問儲存的密碼,同理如果第一次在鑰匙串中沒有找到使用者名稱密碼,則要求你輸入,輸入之後下次就不用再次輸入啦。

與商店方式不同的是(你的每個平臺使用者名稱和密碼都不一樣):
假如第一次push到github,那麼keychain記錄了github的使用者名稱密碼,
第二次你想推送編碼,那麼keychain沒有編碼只是店的方式 我們需要手動新增url,這裡不用了。

我們可以檢視Mac上的鑰匙串,推一次後就會新出一個對應網站的鑰匙串,你也可以雙擊訪問,檢視密碼。

注意:如果在/ Users / xxx /資料夾中已經有了.git-credentials檔案,要先刪除,否則系統自動去那裡尋找使用者名稱密碼。

轉載地址:https ://www.jianshu.com/p/77b0340a02f3

相關推薦

git push 失敗的解決辦法

有時候git push會報錯: git push origin luoyan-dev:luoyan-dev To [email protected]:xxx.git ! [rejected] luoyan-dev -> luoyan-dev (non-f

Microsoft VBScript 執行時錯誤 錯誤 '800a0046' 沒有許可權 ----解決辦法

請一步步的來: 一、在開始裡執行:regsvr32.exe scrrun.dll 這是開啟FSO組建的命令。 二、如果分割槽為NTFS,則找到對應目錄(被操作的檔案所在的目錄),設定使用者使用許可權:屬性---安全---users/everyone(為保證網站安全,建議增

git push失敗的解決辦法(2)

開發十年,就只剩下這套架構體系了! >>>   

Git - 提交時沒有許可權解決方法

Git - 提交時提示“Please make sure you have the correct access rights and the repository exists.”的解決方法 1.首先開啟Git Bash設定名字和郵箱: git config --global

win10下解決github賬戶更改後git push許可權問題

remote: Permission to * denied to *. fatal: unable to access 'https://github.com/*/*.git': The requested URL returned error: 403

git突然沒有許可權push/clone

問題 環境 一直使用cygwin,把其bin目錄加入系統path目錄,直接使用其中的git/ssh等命令 現象 半個小時前git還一切正常,clone/pull都OK, 但是一次push時提示 THE AUTHENTICITY OF HOST XX

Git pull push 卡死解決辦法

執行git pull 或是 git push 出現卡死現象,如下圖根據圖片的中的提示  git help gc 執行gc操作,然後在執行git pull 獲得git push 擦走還是出現上述卡死的現象,繼續google,新的方法執行 git fsck,在執行 git gc

Git之右鍵沒有Git Bash Here的解決辦法

cto 文章 http span min back tps 版權 鏈接 點擊鼠標右鍵,選擇Git Bash here的時候發現 右鍵沒有Git Bash here這個就是很尷尬了。 在網上搜了下怎麽添加 Git Bash here到鼠標右鍵就

微信運動沒有步數解決辦法

color save nbsp blog inf key logs term con 激活微信計步設備: //setkey<deviceinfoconfig><voip><sensor><stepCounterMaxStep5

<問題解決02>Linux虛擬機使用git push報錯--解決方案如下:

hello class lai git onf http afr 再次 log 問題描述:   使用git push 報錯:     error: The requested URL returned error: 403 Forbidden while accessing

Oracle12c Client安裝出現"[INS-30131]"錯誤“請確保當前使用者具有訪問臨時位置所需的許可權解決辦法之完整版

管理工具>計算機管理>系統工具>共享資料夾>共享    右鍵單擊“共享”>新建共享> 如果出現右鍵無法出現“新建共享”選項請"控制面板>所有控制面板項>網路和共享中心>高階共享設定"啟用"檔案和印表機共享"   &nbs

本地連線ipv4無網路訪問許可權解決辦法

在使用電腦上網的時候,可能經常會遇到這個問題:本地連線ipv4無網路訪問許可權,如下圖所示,導致電腦不能夠上網。而引起電腦上“本地連線ipv4無網路訪問許可權”的原因比較多,下面本文介紹一些常見的原因和對應的解決辦法。 本地連線ipv4無網路訪問許可權 首先,進行如下的操作: (1

Win10專業版安裝GIT後使用Git Bash閃退解決辦法

百度後把過程和最終解決辦法記錄下來: 百度首先出來的解決辦法如下: 來自:https://segmentfault.com/q/1010000012722511?sort=created 重啟電腦 重新安裝 安裝到C盤 嘗試網上的教程 \G

layui table 操作欄按鈕過多 省略號隱藏的按鈕彈出的tip點選沒有效果解決辦法

範例如下 <table id="LAY-app-content-nav" lay-filter="LAY-app-content-nav"></table> table.on('row(LAY-app-content-nav)', function(obj){

git -------- pull更新錯誤解決辦法

Your local changes to the following files would be overwritten by merge error: Your local changes to the following files would be overwritten by merge: &

unity | 按鈕onClick沒有function解決辦法、button繫結回撥函式步驟

0. 首先新建C#指令碼,定義回撥函式,例如:resetPos using System.Collections; using System.Collections.Generic; using State; using UnityEngine; using UnityEngine.UI; p

vue 用npm進行全域性安裝(npm install live-server -g),提示沒有許可權解決方法

vue 用npm進行全域性安裝(npm install live-server -g),報錯Error: EACCES: permission denied, mkdir '/usr/local/lib/node_modules/live-server_tmp’

VMware Workstation虛擬機器開啟 .vmx 檔案沒有反應--解決辦法

方法1:關閉VMs方法:英文版:Edit=>Preferences=>Share VMs 點選 Disable Sharing,點選後會變成 Enable Sharing,即可正常開啟虛擬機器。 中文版:VMware Workstation 左上角--編輯--首選項--共享虛擬機器--

VMware Workstation虛擬機打開 .vmx 文件沒有反應--解決辦法

pan .vmx war 英文版 space .com 打開 正常 沖突 方法1:關閉VMs方法:英文版:Edit=>Preferences=>Share VMs 點擊 Disable Sharing,點擊後會變成 Enable Sharing,即可正常打開虛擬

git clone慢的解決辦法

問題 大家可能都遇到過從github使用git clone指令奇慢無比的問題,網上很多人說使用代理來加速git,但是這也不是長久的解決辦法,使用了代理,指不定哪天還要換回來,就很麻煩 git clone慢的原因其實主要是因為這條指令預設是將所有的git歷史記錄