最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用SSH協(xié)議解決Git推送失敗問(wèn)題的具體操作方法

 更新時(shí)間:2026年01月01日 12:02:57   作者:STARBLOCKSHADOW  
在日常開(kāi)發(fā)中,我們常常會(huì)遇到 Git 推送失敗的問(wèn)題,尤其是在初次配置遠(yuǎn)程倉(cāng)庫(kù)或網(wǎng)絡(luò)環(huán)境受限的情況下,本文將詳細(xì)介紹如何通過(guò)配置 SSH 協(xié)議解決 Git 推送失敗問(wèn)題,需要的朋友可以參考下

0 引言

在日常開(kāi)發(fā)中,我們常常會(huì)遇到 Git 推送失敗的問(wèn)題,尤其是在初次配置遠(yuǎn)程倉(cāng)庫(kù)或網(wǎng)絡(luò)環(huán)境受限的情況下。

如會(huì)出現(xiàn)類(lèi)似如下的報(bào)錯(cuò):

fatal: unable to access 'https://github.com/username/repo.git/': Recv failure: Connection was reset

本文將詳細(xì)介紹如何通過(guò)配置 SSH 協(xié)議解決 Git 推送失敗問(wèn)題,并深入解析一個(gè)常見(jiàn)的錯(cuò)誤場(chǎng)景:“fatal: refusing to merge unrelated histories”。

1 SSH 配置詳解

1.1 為什么選擇 SSH?

Git 支持 HTTPS 和 SSH 兩種協(xié)議進(jìn)行遠(yuǎn)程通信:

  • HTTPS:需要每次輸入用戶(hù)名和密碼(或使用 token),容易受代理影響。
  • SSH:基于密鑰認(rèn)證,安全高效,且不受部分代理干擾,適合長(zhǎng)期開(kāi)發(fā)使用。

1.2 生成 SSH 密鑰對(duì)

如果你尚未配置 SSH 密鑰,可以在 Git Bash 通過(guò)以下命令生成并配置 SSH 密鑰:

ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
  • -t rsa 表示使用 RSA 算法。
  • -b 4096 表示密鑰長(zhǎng)度為 4096 位,更安全。
  • -C 后面是注釋?zhuān)ㄗh填寫(xiě)注冊(cè) GitHub 的郵箱。

系統(tǒng)會(huì)提示:

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/XXX/.ssh/id_rsa):

直接回車(chē)即可(使用默認(rèn)路徑 /c/Users/XXX/.ssh/id_rsa

接著會(huì)提示:

Enter passphrase (empty for no passphrase):

可以選擇輸入一個(gè)密碼(推薦),會(huì)要求二次輸入確認(rèn),也可以直接按回車(chē)跳過(guò)。

成功后會(huì)顯示:

Your identification has been saved in /c/Users/XXX/.ssh/id_rsa
Your public key has been saved in /c/Users/XXX/.ssh/id_rsa.pub
The key fingerprint is:
SHA256:XXXXXXXXXXXXXXXXX your_email@example.com
The key's randomart image is:
XXXXXXXXXX
XXXXXXXXXX
XXXXXXXXXX
……

1.3 添加公鑰到 GitHub

執(zhí)行以下命令顯示公鑰內(nèi)容:

cat /c/Users/XXX/.ssh/id_rsa.pub

輸出類(lèi)似如下內(nèi)容(以 ssh-rsa 開(kāi)頭):

ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQC7... your_email@example.com

完整復(fù)制輸出內(nèi)容,在 GitHub SSH Keys 設(shè)置頁(yè)面 中添加新密鑰。

點(diǎn)擊New Key,填寫(xiě)Title,將復(fù)制的內(nèi)容粘貼進(jìn) Key 文本框,最后點(diǎn)擊 Add SSH key。

1.4 測(cè)試 SSH 連接

運(yùn)行以下命令測(cè)試是否成功連接 GitHub:

ssh -T git@github.com

如果返回如下提示,則表示 SSH 已配置成功:

Hi username! You've successfully authenticated, but GitHub does not provide shell access.

如果提示主機(jī)指紋未知,請(qǐng)確認(rèn)是否為官方服務(wù)器,并輸入 yes 繼續(xù)連接。

當(dāng)?shù)谝淮螄L試連接 GitHub 的 SSH 服務(wù),系統(tǒng)為了安全起見(jiàn)會(huì)提示你確認(rèn) GitHub 的主機(jī)密鑰指紋:

The authenticity of host 'github.com (20.205.243.166)' can't be established.
ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])?

輸入yes即可。

然后會(huì)提示你輸入 passphrase(如果你在生成密鑰時(shí)設(shè)置了密碼),否則直接回車(chē)即可。

1.5 修改遠(yuǎn)程倉(cāng)庫(kù)地址為 SSH 格式

如果之前用的是 HTTPS 地址,需要改成 SSH:

git remote set-url origin git@github.com:username/repo.git

驗(yàn)證當(dāng)前遠(yuǎn)程地址:

git remote -v

接著就能進(jìn)行clone或push等操作了。

2 遠(yuǎn)程倉(cāng)庫(kù)推送失敗問(wèn)題解決

2.1 報(bào)錯(cuò)信息示例

我在執(zhí)行推送命令時(shí)報(bào)錯(cuò):

error: failed to push some refs to 'github.com:username/repo.git'
hint: Updates were rejected because the remote contains work that you do not have locally.

2.2 原因分析

該錯(cuò)誤通常表示遠(yuǎn)程分支存在本地沒(méi)有的提交記錄(unrelated histories) ,可能原因分析如下:

  1. 其他開(kāi)發(fā)者在 GitHub 上向 main 分支提交并推送了新的代碼;
  2. 你在其他設(shè)備上提交過(guò)代碼但沒(méi)同步回來(lái);
  3. 遠(yuǎn)程倉(cāng)庫(kù)初始化時(shí)已包含文件(如 README.md)。

此時(shí) Git 無(wú)法直接合并兩個(gè)不同歷史起點(diǎn)的分支。

我的例子是我在本地初始化了一個(gè)新的 Git 倉(cāng)庫(kù)(git init),接著添加了遠(yuǎn)程倉(cāng)庫(kù)地址;
然后我執(zhí)行 git pull origin;
main 想要拉取遠(yuǎn)程分支內(nèi)容; 但由于本地和遠(yuǎn)程是完全獨(dú)立的倉(cāng)庫(kù)(沒(méi)有任何共同提交歷史),Git 默認(rèn)拒絕合并它們。

2.3 解決方法:拉取遠(yuǎn)程并合并不相關(guān)歷史

2.3.1 允許合并不相關(guān)歷史

git pull origin main --allow-unrelated-histories

此參數(shù)用于強(qiáng)制 Git 合并兩個(gè)沒(méi)有共同祖先的提交歷史。

2.3.2 解決沖突(如有)

如果提示沖突,檢查狀態(tài)并處理沖突:

git status

添加文件并提交:

git add .
git commit -m "合并遠(yuǎn)程倉(cāng)庫(kù)到本地"

2.3.3 推送至遠(yuǎn)程

git push origin main

到此這篇關(guān)于使用SSH協(xié)議解決Git推送失敗問(wèn)題的具體操作方法的文章就介紹到這了,更多相關(guān)SSH協(xié)議解決Git推送失敗內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Git上有更新而本地?zé)o更新時(shí)的解決過(guò)程

    Git上有更新而本地?zé)o更新時(shí)的解決過(guò)程

    文章解決分支名不匹配導(dǎo)致的推送沖突問(wèn)題,建議先拉取遠(yuǎn)程更新,手動(dòng)解決沖突并提交,若需強(qiáng)制推送需謹(jǐn)慎,可能覆蓋遠(yuǎn)程內(nèi)容
    2025-09-09
  • ImageMagick免費(fèi)開(kāi)源圖片批處理利器使用詳解

    ImageMagick免費(fèi)開(kāi)源圖片批處理利器使用詳解

    這篇文章主要為大家介紹了ImageMagick免費(fèi)開(kāi)源圖片批處理利器使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-04-04
  • Git基礎(chǔ)學(xué)習(xí)之分支基本操作詳解

    Git基礎(chǔ)學(xué)習(xí)之分支基本操作詳解

    這篇文章主要為大家詳細(xì)介紹了Git基礎(chǔ)學(xué)習(xí)中分支的基本操作,例如分支的創(chuàng)建、查看、切換和刪除等,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2022-10-10
  • git 拉取遠(yuǎn)程分支到本地的方法步驟

    git 拉取遠(yuǎn)程分支到本地的方法步驟

    這篇文章主要介紹了git 拉取遠(yuǎn)程分支到本地的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 關(guān)于圖片存儲(chǔ)格式的整理(BMP格式介紹)

    關(guān)于圖片存儲(chǔ)格式的整理(BMP格式介紹)

    BMP文件的圖像深度可選lbit、4bit、8bit及24bit。BMP文件存儲(chǔ)數(shù)據(jù)時(shí),圖像的掃描方式是按從左到右、從下到上的順序。由于BMP文件格式是Windows環(huán)境中交換與圖有關(guān)的數(shù)據(jù)的一種標(biāo)準(zhǔn),因此在Windows環(huán)境中運(yùn)行的圖形圖像軟件都支持BMP圖像格式
    2016-01-01
  • IDEA使用code?with?me來(lái)進(jìn)行多人遠(yuǎn)程編程的實(shí)現(xiàn)

    IDEA使用code?with?me來(lái)進(jìn)行多人遠(yuǎn)程編程的實(shí)現(xiàn)

    本文主要介紹了IDEA使用code?with?me來(lái)進(jìn)行多人遠(yuǎn)程編程的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • 如何正確使用開(kāi)源項(xiàng)目?

    如何正確使用開(kāi)源項(xiàng)目?

    開(kāi)源項(xiàng)目廣受大家喜愛(ài),其實(shí)我們?cè)谑褂瞄_(kāi)源項(xiàng)目的過(guò)程中有不少注意的事項(xiàng),今天就來(lái)給大家介紹下如何正確的使用開(kāi)源項(xiàng)目。需要的朋友可以參考一下
    2018-09-09
  • Azkaban報(bào)錯(cuò)-azkaban.executor.ExecutorManagerException: No active executors found

    Azkaban報(bào)錯(cuò)-azkaban.executor.ExecutorManagerException: No acti

    這篇文章主要介紹了Azkaban報(bào)錯(cuò)-azkaban.executor.ExecutorManagerException: No active executors found,本文給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2020-05-05
  • vscode使用git的配置教程

    vscode使用git的配置教程

    在vscode中使用Git可以幫助我們更方便地管理代碼,進(jìn)行版本控制,下面通過(guò)本文給大家介紹vscode使用git的配置教程,感興趣的朋友一起看看吧
    2024-08-08
  • 在VSCode中本地運(yùn)行DeepSeek的流程步驟

    在VSCode中本地運(yùn)行DeepSeek的流程步驟

    本文詳細(xì)介紹了如何在本地VSCode中安裝和配置Ollama和CodeGPT,以使用DeepSeek進(jìn)行AI編碼輔助,無(wú)需依賴(lài)云服務(wù),需要的朋友可以參考下
    2025-03-03

最新評(píng)論

霍山县| 江永县| 南汇区| 长春市| 合江县| 霍城县| 芦山县| 睢宁县| 汉寿县| 洛浦县| 泗洪县| 荆州市| 桂东县| 西和县| 巴楚县| 玉田县| 连云港市| 张北县| 闽侯县| 禹城市| 临清市| 莱阳市| 会昌县| 云霄县| 淳安县| 临西县| 澄城县| 理塘县| 灌南县| 游戏| 玉门市| 临桂县| 卢氏县| 汨罗市| 连城县| 交口县| 兴仁县| 陆川县| 永仁县| 广宁县| 怀仁县|