git clone
案例一
- 問題 trace :
fatal:Authentication failed for '...'
- 原因分析一:
使用ssh
協(xié)議下載代碼捉片,賬戶認(rèn)證失敗艺演, git 賬號洪添,郵箱等信息錯誤疲恢。 - 解決方法一:
重新配置用戶信息
使用以下命令查詢用戶信息是否配置正確。git config --global user.name [username] git config --global user.email [email]
git config --list
- 原因分析二:
使用了http
協(xié)議下載代碼考传,密碼輸入錯誤严嗜。 - 解決方法二:
輸入正確的密碼進(jìn)行登錄。 - 擴(kuò)展:
如果是在 push 時報(bào)錯這個錯誤翔曲,解決方法為git config –system –unset credential.helper
迫像,之后再次 push 會提示輸入名稱及密碼。
案例二
- 問題 trace :
Permission denied(publickey)
- 原因分析:
沒有貼公鑰瞳遍,或者公鑰貼錯了代碼服務(wù)器闻妓;在服務(wù)器上的公鑰不是操作環(huán)境(如本機(jī)、虛擬機(jī)或編譯服務(wù)器等)上的公鑰掠械;公鑰損壞或者意外刪除由缆。 - 解決方法:
將公鑰貼到要下載的 git 服務(wù)器的賬號下。
案例三
- 問題 trace :
error:unable to create file XXXX:file name too long
- 原因分析:
項(xiàng)目中某個文件的名字太長猾蒂。 - 解決方法:
git config --global core.longpaths true git clone XXX #在克隆一次即可
案例四
- 問題 trace :
ssh: Could not resolve hostname XXXX : Name or service not known
- 原因分析:
無法解析域名均唉。 - 解決方法:
添加域名解析即可。
windows
環(huán)境肚菠,添加到c:/windows/system32/drivers/etc/hosts
文件中舔箭;
Linux
環(huán)境,添加到/etc/hosts
文件中蚊逢。格式為IP地址 域名
层扶。
案例五
- 問題 trace :
ssh:connect to host XXX port 22: Connection refused fatal: Could not read from remote repository. Please make sure you have the correct access rights and the repository exists.
- 原因分析:
git 服務(wù)器的 ssh 端口不是 22 - 解決方法:
在 ~/.ssh文件夾下,新建 config文件烙荷,并輸入以下內(nèi)容镜会,保存。Host <IP> HostName <host_name> Port <port> PubkeyAuthentication yes
git push
案例一
- 問題 trace :
fatal: Unpack error, check server log ... ! [remote rejected] HEAD -> refs/heads/master (n/a (unpacker error))
- 原因分析:
默認(rèn)情況下 git push 會在向服務(wù)器推送時進(jìn)行優(yōu)化终抽,以將所發(fā)送的包降低到最小戳表。 做法是發(fā)送時忽略本地倉庫和遠(yuǎn)端倉庫中共有的部分.桶至。即 git push 默認(rèn)是采用–thin
選項(xiàng)的。在這個問題上匾旭,疑似某個 git 對象和服務(wù)器不一致了镣屹,故需要去掉這個參數(shù)。 - 解決方法:
git push --no-thin origin HEAD:refs/head/<分支名>
案例二
- 問題 trace :
invalid committer
- 原因分析:
先提交生成的 committer 與后來更改的提交 email 地址不匹配季率,無效提交野瘦,需要更改郵箱名和用戶名描沟。 - 解決方法一:
git commit --amend --author='Your Name <郵箱地址>'#修改郵箱名和用戶名
- 解決方法二(推薦):
git config --global --unset user.name git config --global --unset user.email git config --global user.name [username] git config --global user.email [email] git commit --amend --reset-author
案例三
- 問題 trace :
mising Change-Id in commit message footer
- 原因分析:
當(dāng)遠(yuǎn)程服務(wù)器是 gerrit 時飒泻,下載代碼出現(xiàn)這個錯誤,則是因?yàn)闆]有在網(wǎng)頁上選擇clone with commit-msg hooks
吏廉。 - 解決方法:
gitdir=$(git rev-parse --git-dir); scp -p -P ${port_id} ${uer_id}@${hostname}:hooks/commit-msg ${gitdir}/hooks/ #其中${gitdir}里面為具體的倉庫名稱 #注意hooks路徑是否正確 #注意分支是否正確 git commit --amend #在彈出來的vim界面下泞遗,不要操作,執(zhí)行:wq退出 git log -2 #可以查看Change-Id是否補(bǔ)全 git push origin
git pull
案例一
- 問題 trace :
There is no tracking information for the current branch
- 原因分析:
本地分支沒有跟遠(yuǎn)程分支相關(guān)聯(lián)席覆。 - 解決方法:
git branch --set-upstream-to=origin/<遠(yuǎn)程分支> <本地分支>
案例二
- 問題 trace :
unable to unlink old…………………..(Permisson denied)
- 原因分析:
文件被占用史辙,沒有釋放進(jìn)程。 - 解決方法:
關(guān)閉占用文件的 IDE 佩伤,再操作 git 聊倔。
案例三
- 問題 trace :
warning:remote HEAD refers to nonexistent ref, unable to checkout.
- 原因分析:
本地沒有對應(yīng)的遠(yuǎn)程分支。 - 解決方法:
先通過$git branch -a
;查看分支情況生巡,然后再使用$git checkout -b <本地分支名> origin/<遠(yuǎn)程分支名>
(兩個分支的名字需要相同)切換到需要的分支上耙蔑。
持續(xù)更新中。孤荣。甸陌。