Git如何清除本地緩存
Git清除本地緩存
工作中遇到了令我頭痛的是Gitlab遠(yuǎn)程倉(cāng)庫(kù)中初始化倉(cāng)庫(kù)時(shí),提交了.idea文件,導(dǎo)致我clone下來(lái)代碼后,idea導(dǎo)入.idea文件改變,
在以后的提交過(guò)程中都需要合并.idea文件中的xml文件,很麻煩,所以添加.gitignore文件輸入.idea/意思是忽略掉.idea/文件下的所有文件。
但是都是失敗,因?yàn)榈谝淮蝐lone的時(shí)候,本地與遠(yuǎn)程的.idea文件已經(jīng)建立了track,所以只有清除本地的localcache并且清除遠(yuǎn)程倉(cāng)庫(kù)中的.idea文件夾,執(zhí)行命令如下:
1、git rm -r --cached .idea/
2、git add .
3、git commit -m 'delete .idea'
4、git push -u origin master -f //強(qiáng)制提交
5、編寫.gitignore文件,并把所有忽略提交的文件都寫入提交
windows 清除Git緩存
Windows 域賬號(hào)的密碼,或者git賬號(hào)的密碼修改之后,Git-Bash 中不能clone,提示認(rèn)證失敗。原因是Windows緩存了git賬號(hào)密碼。
先來(lái)看一下原理
緩存有幾種,可以通過(guò)命令git config credential.helper
或者用戶目錄下的.gitconfig文件查看是哪種緩存方式。
- 一般默認(rèn)是使用wincerd,也就是windows憑證。配置命令
#git config --global credential.helper wincerd
- 還可以配置保存到 .git-credentials文件,配置命令
#git config --global credential.helper store
- 還可以直接配置賬號(hào)密碼
清楚了緩存的方式,我們就可以有針對(duì)性的清除緩存。比如你的緩存方式是store,也就是保存到文件,那么你清除windows 憑據(jù)緩存就沒(méi)有用了。其它同理。
清除緩存
第一種情況:
當(dāng)使用.git-credentials文件緩存方式時(shí),當(dāng)git clone認(rèn)證失敗一次,會(huì)自動(dòng)清除掉對(duì)應(yīng)的緩存。然后再執(zhí)行g(shù)it clone會(huì)提示輸新的賬號(hào)密碼。如果不行可以手動(dòng)到文件中刪除。
之后再執(zhí)行clone或者pull時(shí)先提示輸入用戶名,然后提示輸入密碼,注意,這里的密碼輸入框有問(wèn)題,要先把密碼輸入到一個(gè)文本然后再?gòu)?fù)制粘貼過(guò)去,否則會(huì)一直提示你認(rèn)證失敗
第二種情況:
當(dāng)使用wincred方式時(shí)應(yīng)該清理windows憑據(jù)緩存,方法如下
Windows清理憑據(jù)緩存
執(zhí)行下面的命令
這個(gè)操作受限于權(quán)限,在域管理的情況下你可能沒(méi)有這個(gè)權(quán)限
#git credential-manager uninstall
這種情況還有一種清理方式
同樣,這個(gè)操作受限于權(quán)限,在域管理的情況下你可能沒(méi)有這個(gè)權(quán)限
控制面板\用戶帳戶\憑據(jù)管理器
刪除對(duì)應(yīng)版本庫(kù)的用戶名密碼
如果使用的是wincred方式,又沒(méi)有權(quán)限清理windows憑據(jù)緩存時(shí)怎么辦呢?
使用如下命令,清除git緩存設(shè)置
#git config --system --unset credential.helper
清除之后,每次執(zhí)行g(shù)it clone都會(huì)讓你輸入賬號(hào)密碼。注意這里有個(gè)大坑,輸入密碼的輸入框有問(wèn)題,當(dāng)你密碼比較長(zhǎng)時(shí)可能導(dǎo)致密碼混亂,驗(yàn)證失敗。這種情況可以先將密碼寫到某個(gè)文件中,然后復(fù)制粘貼過(guò)來(lái)。
第三種情況:
將賬號(hào)配置在git url中,執(zhí)行命令后會(huì)提示要求輸入密碼,正常輸入即可。
git clone https://username@bitbucket.xxx.com/bitbucket/scm/repo.git
下面是具體問(wèn)題的例子
jenkins配置git url 如下:
https://bitbucket.xxx.com/bitbucket/scm/repo.git
構(gòu)建報(bào)錯(cuò)
在jenkins slave上直接執(zhí)行g(shù)it clone命令也一樣的錯(cuò)誤。而且不提示輸入用戶名密碼,直接報(bào)賬號(hào)被鎖定。
如果給git的url執(zhí)行賬號(hào)則沒(méi)有問(wèn)題,如下寫法: https://username@bitbucket.xxx.com/bitbucket/scm/repo.git
初步分析,是由于git緩存了賬號(hào)信息,在不指定賬號(hào)的時(shí)候使用默認(rèn)的賬號(hào)去執(zhí)行pull操作。所以沿著清緩存的方向找到一篇文章(見(jiàn)截圖):
按照文章中的說(shuō)法,執(zhí)行了清緩存的命令,問(wèn)題解決:
#git credential-manager uninstall
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Git工具實(shí)現(xiàn)上傳本地項(xiàng)目到GitHub的方法
這篇文章主要介紹了使用Git工具實(shí)現(xiàn)上傳本地項(xiàng)目到GitHub的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10深入剖析從輸入U(xiǎn)RL到頁(yè)面顯示過(guò)程原理
這篇文章主要為大家深入剖析了從輸入U(xiǎn)RL到頁(yè)面顯示這中間發(fā)生的過(guò)程原理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04fiddler使用方法之Fiddler顯示IP,Fiddler中文亂碼解決方法以及fiddler模擬發(fā)送get/post
今天為大家介紹fiddler的3種使用技巧,(1)Fiddler抓包顯示域名IP(2)解決Fiddler抓包時(shí)中文亂碼問(wèn)題(3)利用fiddler模擬發(fā)送get/post請(qǐng)求的方法2018-10-10反向傳播BP學(xué)習(xí)算法Gradient?Descent的推導(dǎo)過(guò)程
這篇文章主要為大家介紹了反向傳播BP學(xué)習(xí)算法-Gradient?Descent的推導(dǎo)過(guò)程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-05-05Git 教程之創(chuàng)建倉(cāng)庫(kù)詳解
本文主要介紹Git 創(chuàng)建倉(cāng)庫(kù)的知識(shí),這里整理了相關(guān)資料及簡(jiǎn)單示例代碼,幫助大家學(xué)習(xí)理解此部分的知識(shí),有興趣的小伙伴可以參考下2016-09-09