【筆記】整理了Git遇到錯誤時如何解決的一些坑!

2021-02-20 PHP自學中心

文章參考:CSDN
連結:好幾個
作者:小天

商務合作:請加微信(QQ):2230304070

自學網站:www.startphp.cn

初學者總是不知道如何學習,我一直建議你要擁有一本屬於自己的學習課本,不管是基礎,還是提升。

抖音號:startphp

用短視頻和大家分享PHP學習方法,學習技巧與經驗分享,功能實例

歡迎關注抖音號:startphp

在工作中,你總是與代碼打交道,上傳代碼的時候,相信你不是用svn,就是用Git版本控制器,下面是最近這幾天整理下來經常會遇到的Git的一些錯誤的解決訪問,希望能幫助到你。

1 git pull遇到錯誤:error: Your local changes to the following files would be overwritten by merge:

方法1:如果你想保留剛才本地修改的代碼,並把git伺服器上的代碼pull到本地(本地剛才修改的代碼將會被暫時封存起來)

git stash
git pull origin master
git stash pop

如此一來,伺服器上的代碼更新到了本地,而且你本地修改的代碼也沒有被覆蓋,之後使用add,commit,push 命令即可更新本地代碼到伺服器了。

方法2、如果你想完全地覆蓋本地的代碼,只保留伺服器端代碼,則直接回退到上一個版本,再進行pull:

git reset 
git pull origin master

2 在git push origin master時出現以下這個問題時:
error: failed to push some refs to 'git@github.com:yangchao0718/cocos2d.git
hint: Updates were rejected because the tip of your current branch is behin
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

出現錯誤的主要原因是github中的README.md文件不在本地代碼目錄中 可以通過如下命令進行代碼合併【註:pull=fetch+merge]

git pull --rebase origin master

git push -u origin master

3 如果出現這樣的錯誤:The file will have its original line endings in your working directory.

解決辦法:

git rm -r --cached ./
git config core.autocrlf false
git add ./

4 git出現這樣的錯誤:Git master branch has no upstream branch
$> git push
fatal: The current branch master has no upstream branch.
To push the current branch and set the remote as upstream, use

git push

原因分析:沒有將本地的分支與遠程倉庫的分支進行關聯。出現這種情況主要是由於遠程倉庫太多,且分支較多。在默認情況下,git push時一般會上傳到origin下的master分支上,然而當repository和branch過多,而又沒有設置關聯時,git就會產生疑問,因為它無法判斷你的push目標。

解決: 方法一:(遠程分支存在的情況才能使用)

# 查看要指向的 repository
git remote -v

# 查看所有分支
git branch -a

git push --set-upstream origin master
# master: 遠程branch
# oringin: 在clone遠程代碼時,git為你創建的指向這個遠程代碼庫的標籤,它指向repository。

方法二:根據需要,替換origin和master,此方法的好處是即使遠程沒有你要關聯的分支,它也會自動創建一個出來,以實現關聯。

git push -u origin master

5 出現這個錯誤:! [rejected] master -> master (fetch first)
 ! [rejected]        master -> master (fetch first)
error: failed to push some refs to 'git@11.111.11.11:bboyHan/golang-data.git'
hint: Updates were rejected because the remote contains work that you do
hint: not have locally. This is usually caused by another repository pushing
hint: to the same ref. You may want to first integrate the remote changes
hint: (e.g., 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

原因分析:沒有同步遠程的master 解決:

git pull origin master

6 Git出現failed to push some refs to

描述:

$ git push -u origin master
To git@github.com:******/Demo.git
 ! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@github.com:******/Demo.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Merge the remote changes (e.g. 'git pull')
hint: before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.

解決方法:

(1).使用強制push的方法:
$ git push -u origin master -f 
這樣會使遠程修改丟失,一般是不可取的,尤其是多人協作開發的時候。
(2).push前先將遠程repository修改pull下來
$ git pull origin master
$ git push -u origin master
(3).若不想merge遠程和本地修改,可以先創建新的分支:
$ git branch [name]
然後push
$ git push -u origin [name]

7 Git出現fatal: refusing to merge unrelated histories的時候

描述:這是從遠程庫pull項目,合併文件發生的異常

解決方案:在pull的時候添加 --allow-unrelated-histories。

$ git pull origin master ----allow-unrelated-histories

這個功能是可以讓大家不要把倉庫上傳錯了,如果會加上這個代碼,那麼就是自己確定了上傳。之前很容易就把代碼傳錯了,現在可以看到,如果上傳的不是之前的,那麼就需要加代碼。

8 當Git出現error:src refspec master does not match any 錯誤時:

描述:在push項目的時候,引發該異常。 原因分析:目錄中沒有文件,空目錄是不能提交上去的,獲取沒有add、commit文件直接進行push了。 解決方案:

touch README
git add README
git commit -m 'first commit'
git push origin master

9 git時出現fatal: Authentication failed for 'https://github.com/ ...

描述:使用的https提交,在用SourceTree提交代碼時候發生錯誤,返回的錯誤提示說:fatal:Authentication failed for'https://github.com/... 解決方案:重新執行Git config命令配置用戶名和郵箱即可:

git config -–global user.name "xxx" 
git config –-global user.email "xxx@xxx.com"

以上分支看自己的而定,這裡都是以master為主

以上是文章的全部內容,有需要的可以關注以下公眾號,回復相應的關鍵詞就好了

相關焦點

  • 如何解決git合併衝突
    這篇文章向Git新手展示如何做一些稍微高級但至關重要的事情:解決git合併衝突。什麼是git 合併?所有現代原始碼管理系統都有一個基本特徵:多個開發人員能夠同時在同一項目上工作,而不會相互幹擾。Git通過允許多個開發人員在本地的分支上工作來實現這個特性,然後將他們的代碼推到一個中心位置。
  • Git 常用命令清單筆記
    這裡是我的筆記,記錄一些git常用和一些記不住的命令,這個筆記原本是基於 顏海鏡的文章增加的,後面慢慢增加了許多內容,可以看出的的學習軌跡。
  • GitNote - 基於Git的跨平臺筆記軟體 可任意恢復筆記版本記錄
    ­  自從工作之後,我開始進行筆記記錄,這是一個很棒的習慣.我曾經使用過 EDiary Evernote Onenote Wiz 麥庫等,都是一些不錯的筆記軟體,但是都有一些各式各樣的問題,不能滿足我的使用.
  • 高考狀元如何整理英語筆記?拋棄兩個錯誤方法,學會一個高效方法
    學英語,特別是高中英語肯定是要記筆記的,但是一定要學會如何有效的記筆記。要學會站在前人的肩膀上往上爬,而不是把前人做過的事情又重新做一遍。
  • 一個關於Git合併的教程
    當你在git分支中工作時,你最終必須將該代碼與其他應用程式集成。學習如何使用git merge來實現這一點。將功能分離到不同的分支對於任何嚴肅的開發人員來說都是至關重要的。如何處理合併衝突一個合併衝突,當你試圖合併這兩個兩個分支改變了同一個文件的同一部分出現。發生這種情況時,Git將無法確定要使用哪個版本。
  • 知識整理:如何高效整理讀書筆記和文章?
    最近幾天在學習思維導圖,就想著把寫過的讀書筆記、文章系統的整理整理。不整理不知道,一整理才發現很多問題。接下來,我就把在整理過程中遇到的問題,和一些改進建議分享給大家。由於命名混亂,在我想以寫作日期將文章排序時,無法達到想要的效果,最終只能統一了文章的命名規範,以8位日期+名字命名,才得以完成文章的整理。在《如何有效整理信息》一書中,作者提到無論你在筆記本中書寫或黏貼什麼,都需要記住的一點是要添加日期。並且,作者給出了一種6位日期命名的方法,大家不妨借鑑。
  • GitBook簡單使用
    ;查了一些資料後發現,存在著gitbook這樣一個基於git和node的寫書、做筆記工具,於是整理了一下;官網及簡介 GitBook 是一個使用 Git 和 Markdown 來構建書籍的工具。 的一些命令, 首先說明兩點:# gitbook-cli 和 gitbook 是兩個軟體# gitbook-cli 會將下載的 gitbook 的不同版本放到 ~/.gitbook中, 可以通過設置GITBOOK_DIR環境變量來指# 定另外的文件夾# 列出gitbook所有的命令$ gitbook help# 輸出gitbook-cli的幫助信息
  • Oh Shit, Git!?!
    所以接下來我會分享一些我遇到過的抓狂的經歷,然後用 白話 來說說我是如何解決的。哎呦我去,我剛才好像犯了個大錯,能不能給我臺時光機啊!?!git reflog# 你將看到你在 git 上提交的所有改動記錄被列# 了出來,而且囊括了所有的分支,和已被刪除的# commit 哦!
  • 如何規範你的Git commit?
    阿里妹導讀:commit message應該如何寫才更清晰明了?團隊開發中有沒有遇到過讓人頭疼的git commit?
  • 你不知道的Git
    前言相信大家已經特別熟練了git的使用,已經足夠滿足日常開發了。如果還有人不會使用git的去看廖雪峰大神的git教程(零基礎教學)滿足日常開發的同時,我們可能也會遇到奇奇怪怪的問題😣,我就把我遇到的問題,以及使用Git的小技巧分享一下🧵。
  • 熟悉Git使用的一些實操練習命令
    關於Git文檔,有官方的文檔(中文版)、其他一些文檔,還有我總結的gitlabFAQ(github:/bollwarm/gitlabFAQ)提到一些信息,以及我發的很多相關文章都是很好的學習材料。但是有時候可能要的是不需要深思熟慮、不需要深究細節的信手粘來的"傻瓜"式實操文檔。所以今天蟲蟲就給你總結了這樣一份材料,供你跟著實際操作聯繫。
  • 如何用Git工具發現和解決開發項目中的痛點
    如果能及時發現和解決掉這些問題,可以極大提高開發我們的開發效率和減輕項目的技術債務,減少項目風險。很多減輕技術債務的工具都是預防性的。比如編譯器,lint,靜態分析工具等。這些工具都通過防止開發人員籤入代碼碼,這一方面限制了開發人員的自由,引起不適,而且可能會導致一些潛在的問題。而且儘管通過管制和審核流程似乎應該是完美無瑕的代碼,但是實際上並不一定會帶來功能良好的系統。
  • 整理英語筆記的方法
    有些童鞋牢記此話,「不惜筆墨」,有時候寫筆記費時太多導致時間的浪費;有些童鞋把筆記全寫在書上,嶄新的教科書很快就成了油抹布;還有的奔放自如,到後來筆記本成了自己也看不懂的天書……於是,常感嘆道,學習為什麼要浪費時間做筆記呢?英語學習,尤其是高階思維的培養,是離不開學習筆記的。整理筆記和摘抄的過程,就是整理思路、強化學習的過程。
  • Git教程(一)
    碰巧,軟體工程師們在協作的過程中也遇到了相同的問題,Linus編寫了Git來管理Linux,這是一個包含了數千個協作者同時更改和處理文件的大型代碼庫。Git非常適合用於項目版本控制和協作工作。誠然,Git剛開始學習起來可能非常棘手,但只要勤加練習,在苦苦掙扎之後,你會發現它會遠遠超出你的期望。
  • Git: 如何優雅的執行「git pull」操作
  • 如何記筆記效率最高?如何歸納整理?一文告訴你
    今天分享的是如何記筆記,怎樣對知識進行歸納整理?可能很多同學記筆記,都會陷入一種矛盾之中,課堂上又要記筆記,又要聽課,一心真的沒辦法二用呀?所以這個問題應該如何解決?你可能需要先來了解一下,記筆記到底在記什麼?
  • Git版本管理完全指南—學好Git一文足矣
    hotfix 分支的作用是緊急修復一些 Bug。它們都是從 master 分支上的某個 tag 建立,修復結束後再合併到 develop 和 master 分支上。image.png第三部分 Git常見錯誤匯總常見錯誤1、windows使用git時出現:warning:LF will be replaced by CRLFwindows中的換行符為
  • 使用 Sphinx 將個人筆記變成文檔的形狀~
    也參考了朋友的意見使用 Trello 記錄筆記,但感覺它更多是針對工作流的,對於個人筆記而言好像又太複雜了。至此我的需求大致明確,平常記錄筆記使用 md;後期方便查閱和搜索;查閱和搜索時秒開;最好有多標籤,沒有也可以;最後,編譯出來的顏值要夠。
  • Git命令的動畫展示,讓我們學習Git事半功倍
    合併衝突儘管Git擅長決定如何合併分支並向文件中添加更改,但它不能總是自己一個人做出決定當我們嘗試合併的兩個分支在同一文件中的同一行上有更改時,可能會發生這種情況,或者一個分支刪除了另一個分支修改的文件,依此類推。在這種情況下,Git將要求您幫助確定我們要保留的兩個選項中的哪一個!假設在兩個分支上,我們都編輯了第一行README.md。
  • git解決衝突操作 - CSDN
    4.解決衝突解決方案:在本地merge要提交的代碼,處理衝突後,重新commit並push到遠端舉例:從test往master分支提交代碼,發現無法merge,確認diff中有衝突文件。具體操作如下:step1: 切到master分支:  git checkout masterstep2: 拉最新的master代碼,git pull origin masterstep3: 切回test,git checkout teststep4: 合併分支,git merge master -m "merge master"step5