工作至今遇見的形形色色的Git問題

ssh方式git clone失敗

報錯提示

Could not read from remote repository.
Please make sure you have the correct access rights

報錯原因

SSH key失效 或者 自己沒有權(quán)限

解決辦法——重新添加SSH key

  1. ssh-keygen -t rsa -C "username" (注:username為你git上的用戶名)
  2. Generating public/private rsa key pair.

Enter file in which to save the key (C:\Users\灝忛┈/.ssh/id_rsa): 直接回車

  1. C:\Users\灝忛┈/.ssh/id_rsa already exists.

Overwrite (y/n)? y 輸入y

  1. Enter same passphrase again: 直接回車
  2. Your identification has been saved in C:\Users\灝忛┈/.ssh/id_rsa. 私鑰保存的地址

Your public key has been saved in C:\Users\灝忛┈/.ssh/id_rsa.pub. 公鑰保存地址

  1. 根據(jù)路徑找到公鑰犀填,將公鑰添加到Git上

git pull失敻庋场(一)

報錯提示

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

報錯原因

其他人修改了該文件提交到版本庫中首有,而我本地也修改了該文件敲才,致使拉去代碼的時候發(fā)生沖突

解決辦法——貯存更改

依次進行如下操作
git stash 將工作區(qū)恢復到上次提交的內(nèi)容溺职,同時備份本地所做的修
git pull 拉取
git stash pop 彈出自己最近保存的內(nèi)容
查看對應文件 解決沖突


image.png

然后git 三連提交自己的代碼

git pull失斄埂(二)

報錯提示

Pulling is not possible because you have unmerged files.

報錯原因

修改的文件未提交

這個錯誤其實是這樣子的——其實我之前已經(jīng)pull過代碼了试吁,然后出現(xiàn)了沖突霍弹,解決沖突之后萍倡,我想再pull一下時報的錯身弊,后來我才知道,解決掉沖突之后是需要再次commit的

解決辦法——提交到本地

git add . 嗯是的列敲,這里 commit 前也需要先 add 一下
git commit -m "獲取新的代碼"
git pull

git push失敗

報錯提示

fatal: Could not read from remote repository.
Please make sure you have the correct access rights

報錯原因

原因一:github上沒有添加最新的公鑰
原因二:網(wǎng)絡未連接

原因一解決辦法——配置公鑰

1.找到公鑰打開阱佛,并復制其內(nèi)容


image.png

2.添加公鑰到github


image.png

image.png

說一下為什么會這樣,因為github和gitlab是共用同一個公鑰和私鑰戴而,在做公司項目的時候凑术,我clone失敗(上面第一個錯誤)時填硕,重新配置了公鑰和私鑰麦萤,所以此時我的github上沒有我最新的公鑰,導致我無法push

原因二解決辦法——連接網(wǎng)絡

1.網(wǎng)線松動
2.掉出公司內(nèi)網(wǎng)扁眯,需要重新登錄
3.WiFi沒網(wǎng)

撤銷對文件的修改

描述

修改了一個復雜的index.vue文件壮莹,修改之后覺得自己寫得亂糟糟的,沒有一絲頭緒姻檀,但這個修改文件未提交命满,我想恢復到它最開始的樣子。

解決辦法

運行命令 git status 獲取到我們這個文件的路徑


image.png

git checkout -- 文件完整路徑(好像不加--這兩個橫線也能使)
然后關(guān)閉這個文件在打開就好了 在提醒你是否保存修改切記不要保存

這是一個非常危險的命令绣版,執(zhí)行此操作后git會用最近的commit覆蓋掉整個文件胶台。 除非你確實清楚不想要對那個文件的本地修改了,否則請不要使用這個命令杂抽。

自己的代碼被pull下來的代碼覆蓋

描述

自己的代碼剛剛提交诈唬,同事然后把我的代碼拉下來之后也提交了,然后我再次把代碼重新pull下來缩麸,發(fā)現(xiàn)自己剛剛寫的代碼全沒了(備注:我合同寫的同一個文件)

解決辦法(一)

git log 找到最近一次提交的commit編碼


image.png

git reset --hard 復制的commit編碼
然后關(guān)閉這個文件在打開就好了 在提醒你是否保存修改切記不要保存

解決辦法(二)

ctrl + z
使用這個辦法是必須要知道铸磅,自己改動過哪些文件,并且編輯器未被關(guān)閉過(我當時編輯器剛好卡了杭朱,然后重啟了一下編輯器.....)

只想拉取遠端代碼 不想commit

描述

自己的代碼只寫了一丁點阅仔,旁邊的同事說他提交了,叫我pull一下弧械,因為沒寫什么東西八酒,所以不想commit

異想天開的嘗試

當時我就想,可不可以直接pull刃唐,結(jié)果當然是不行啦羞迷,git會給你報如下的錯誤
our local changes to the following files would be overwritten by merge:

解決辦法

git stash 暫存自己的打碼
git pull 拉取代碼
git stash pop 彈出暫存

想要回到pull之前的狀態(tài)

問題描述

commit之后界轩,把代碼pull下來,出現(xiàn)很多沖突闭树,然后想回到pull之前的狀態(tài)耸棒,將代碼格式化之后再pull

解決辦法

git merge --abort 回到?jīng)_突之前的狀態(tài)

git merge --abort將會拋棄合并過程并且嘗試重建合并前的狀態(tài)。但是报辱,當合并開始時如果存在未commit的文件与殃,git merge --abort在某些情況下將無法重現(xiàn)合并前的狀態(tài)。(特別是這些未commit的文件在合并的過程中將會被修改時)

查看自己的commit記錄

描述

公司要求記錄自己每天做了什么碍现,想通過查看一下自己的commit記錄來寫日志幅疼,

解決辦法

git log 此方法有缺陷,只能展示最近一次push時的commit記錄
最后昼接,只有在GitLab上的歷史看了

git免密操作

問題描述

最開始到新公司接手代碼時爽篷,第一時間就是配置ssh,一頓操作之后慢睡,發(fā)現(xiàn)不管用逐工,后來才知道公司根本就沒有噢誒之ssh這種方式。然后就一直采用http的哪一種方式拉去代碼漂辐,但是使用這種方式的話每次和遠程倉庫打交道時都需要輸入密碼泪喊,后來真的嫌輸入密碼太煩人了,就去百度看看有沒有解決辦法髓涯,一查還真有(之前一直以為http方式是必須要輸入密碼的袒啼,所以沒有第一時間去百度)

解決辦法

git config --global credential.helper store
復制代碼

是用哪個該命令之后,仍需再輸入一次命令纬纪,之后就再也不需要輸入密碼了

取消merge

問題描述

在合并分支時蚓再,將要merge的分支陰差陽錯merge到了master分支上,原本是要merge到1124生產(chǎn)包上包各,現(xiàn)在要將master分支回退到最開始的樣子摘仅。

解決辦法

1.切換到我們要恢復的分支(我這里是master分支)
git co master
2. 查看歷史版本號,找到要恢復的版本號
git reflog

image.png

3.回退到之前的版本(我的是60a4a3f
git reset --hard 60a4a3f

另外回退之后reflog下面的記錄也會消失问畅,這都是我自己記錄的時候才發(fā)現(xiàn)找不到自己剛才使用的版本號了

push分支代碼

問題描述

自己在本地新建了一個遠程沒有的分支娃属,并完成了開發(fā),此時想要將代碼推送到遠程按声,不能直接使用git push命令[]

解決辦法

這個問題的實質(zhì)是我們所在的分支沒有遠程分支建立聯(lián)系膳犹,當我們使用這個命令時恬吕,git不知道把我們的代碼推送到那一個分支签则,所以會出現(xiàn)這種情況,git pull也是如此

方案一

git push origin <originBranch>
originBranch為遠程分支
該方式能將分支推送到指定的分支铐料,若遠程不存在則會自動創(chuàng)建該分支渐裂,但之后的推送仍需指定遠程分支豺旬,不能直接使用git push推送到遠程

方案二

git push --set-upstream origin <originBranch>
originBranch為遠程分支
該方式能將分支推送到指定的分支并建立關(guān)系,若遠程不存在則會自動創(chuàng)建該分支柒凉,之后在此分支可以直接使用git push命令族阅,會默認推送到與我們建立關(guān)系的遠程分支。

方案三

git branch --set-upstream-to=origin/<originBranch> <localBranch>
localBranch本地分支 originBranch為遠程分支
與遠程分支建立關(guān)系膝捞,若遠程不存在則會自動創(chuàng)建該分支

git commit --amend

問題描述

上一次提交忘記刪除console坦刀,刪除console之后又不想添加新的提交,但是第一次使用這個命令又有點懵蔬咬,不知道該怎么操作....[]

解決辦法

  • 輸入該命令之后會彈出如下界面


    image.png
  • 因為我們只是修正我們的提交鲤遥,這里并沒有什么其他操作,我們先按esc退出編輯模式林艘,然后輸入:wq保存并退出就完成了

  • 最后你可以輸入git log查看一下我們的commit記錄

代碼寫錯分支8悄巍!

問題描述

基于同事的分支狐援,進行一些埋點的操作钢坦,擼代碼時,自己忘了切分支了啥酱,將自己的代碼寫在同事的分支上了爹凹,此時自己又沒有提交,怎么辦懈涛?逛万?

解決辦法

  1. 先將代碼暫存 git stash
  2. 遷出一個分支 git checkout -b
  3. 彈出自己暫存的代碼 git stash pop

修改分支名稱

問題描述

原先遷出的分支名字取得不是很形象,于是想要更改分支的名稱

解決辦法

git branch -m oldName newName
oldName 原始分支名
newName 當前分支名

如何將本地倉庫放在git上面

問題描述

自己先在本地新建了一個git倉庫批钠,進行一系列的學習宇植,現(xiàn)在想將自己的本地倉庫上傳到github上,又想保存自己的提交記錄埋心。何解指郁?

解決辦法

  1. 現(xiàn)在github上新建一個遠程倉庫
  2. 在本地倉庫下使用如下命令將兩個倉庫關(guān)聯(lián)起來

git remote add origin <originRepoAddress>
<originRepoAddress>指的是遠程倉庫的地址,也就是平時我們clone用的那個地址

  1. 使用如下命令將本地倉庫的所有內(nèi)容推送到遠程倉庫

git push -u origin main
如果使用第三步的命令遇到如下錯誤

image.png

這是由于你新創(chuàng)建的那個倉庫里面的README文件不在本地倉庫目錄中拷呆,這時我們可以通過以下命令先將內(nèi)容合并:
git pull --rebase origin main
然后再進行推送

作者:mayoha
鏈接:https://juejin.cn/post/7021044496787832862
來源:稀土掘金
著作權(quán)歸作者所有闲坎。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處茬斧。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末腰懂,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子项秉,更是在濱河造成了極大的恐慌绣溜,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,198評論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娄蔼,死亡現(xiàn)場離奇詭異怖喻,居然都是意外死亡底哗,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評論 3 398
  • 文/潘曉璐 我一進店門锚沸,熙熙樓的掌柜王于貴愁眉苦臉地迎上來跋选,“玉大人,你說我怎么就攤上這事哗蜈∏氨辏” “怎么了?”我有些...
    開封第一講書人閱讀 167,643評論 0 360
  • 文/不壞的土叔 我叫張陵距潘,是天一觀的道長候生。 經(jīng)常有香客問我,道長绽昼,這世上最難降的妖魔是什么唯鸭? 我笑而不...
    開封第一講書人閱讀 59,495評論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮硅确,結(jié)果婚禮上目溉,老公的妹妹穿的比我還像新娘。我一直安慰自己菱农,他們只是感情好缭付,可當我...
    茶點故事閱讀 68,502評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著循未,像睡著了一般陷猫。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上的妖,一...
    開封第一講書人閱讀 52,156評論 1 308
  • 那天绣檬,我揣著相機與錄音,去河邊找鬼嫂粟。 笑死娇未,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的星虹。 我是一名探鬼主播零抬,決...
    沈念sama閱讀 40,743評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼宽涌!你這毒婦竟也來了平夜?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,659評論 0 276
  • 序言:老撾萬榮一對情侶失蹤卸亮,失蹤者是張志新(化名)和其女友劉穎忽妒,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,200評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡锰扶,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,282評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了寝受。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坷牛。...
    茶點故事閱讀 40,424評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖很澄,靈堂內(nèi)的尸體忽然破棺而出京闰,到底是詐尸還是另有隱情,我是刑警寧澤甩苛,帶...
    沈念sama閱讀 36,107評論 5 349
  • 正文 年R本政府宣布蹂楣,位于F島的核電站,受9級特大地震影響讯蒲,放射性物質(zhì)發(fā)生泄漏痊土。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,789評論 3 333
  • 文/蒙蒙 一墨林、第九天 我趴在偏房一處隱蔽的房頂上張望赁酝。 院中可真熱鬧,春花似錦旭等、人聲如沸酌呆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,264評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽隙袁。三九已至,卻和暖如春弃榨,著一層夾襖步出監(jiān)牢的瞬間菩收,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,390評論 1 271
  • 我被黑心中介騙來泰國打工鲸睛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留坛梁,地道東北人。 一個月前我還...
    沈念sama閱讀 48,798評論 3 376
  • 正文 我出身青樓腊凶,卻偏偏與公主長得像划咐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子钧萍,可洞房花燭夜當晚...
    茶點故事閱讀 45,435評論 2 359

推薦閱讀更多精彩內(nèi)容