[筆記] 解決 Git 錯誤 fatal: repository <http://git-url> not found 的問題
No Comments

更新於 2024-04-21 12:30:13

問題:

最近遇到了一個從沒見過的錯誤,為此特別紀錄一下,明明已經初始化 git 倉庫,卻沒辦法從遠端經由 HTTP 進行 pull、clone、push 等動作。

會出現下面的錯誤:

fatal: repository 'http://xxxxxxx/xxx.git/' not found

但是實際上目錄是有資料的,不論是初始化過的或是直接複製 .git 資料夾都沒辦法正常的 clone 或 push。

解決方法:

直接開門見山,講重點,只是因為伺服端建倉庫時少下一個指令:

git update-server-info

只要下完這個指令後,git 會進行一系列更新或建立索引的動作(建立objects/info/packs),類似於建立一個檔案目錄清單的動作。

之後,從遠端伺服器就可以透過 HTTP clone 下 repo 了。

原由:

其實會發生這個問題的主因在於伺服端不是 Smart HTTP server。

Smart HTTP vs. Dumb HTTP:

  • Smart HTTP: 支援 Git 所有功能的 HTTP 協定實現,例如 git push、git pull 等操作。 需要專門的伺服器軟體,例如 Gitea、GitLab、GitHub 等。
  • Dumb HTTP: 僅支援基本的 HTTP 檔案下載功能,無法進行 git push 等操作。 通常用於簡單的 Git 倉庫發布,例如靜態網站。

Dumb HTTP 只是提供簡單的網頁儲存託管倉庫而已。

By Weil Jimmer


This entry was posted in General, Experience, Git, Note By Weil Jimmer.

About Weil Jimmer

Hi! Everyone! My name is Weil Jimmer. This is my personal blog. I'm a webmaster of this site. I hope the site will be popular. Now, Let's go! Enjoy gaining more knowledge.
More Details About Me : https://weils.net/profile.php


Leave a message.

Only the first 10 comment will show.