亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

分叉存儲庫上的“go build”問題

分叉存儲庫上的“go build”問題

Go
隔江千里 2023-06-05 19:35:50
我為 GitHub 存儲庫(go 代碼)構建了一個二進制文件,它工作正常。沒有問題。我分叉了那個 repo,并修改了 HTML 文件中與 GO 代碼無關的一行,為新的分叉 repo 構建了二進制文件,但它生成的二進制文件引用了原始 repo 代碼,不明白為什么。我什至使用命令清理了所有代碼go clean -i all并手動刪除了所有已安裝的代碼、$home/go/bin 和 repo 目錄中的二進制文件,但它仍然引用原始 repo 代碼而不是新的分叉代碼。根據 Tobias 建議的解決方案,我執行了以下步驟:之后,我go build在那個repo目錄下執行,但是新的二進制文件仍然引用舊代碼。我什至刪除了舊的二進制文件并生成了一個新文件。
查看完整描述

3 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

這是一個常見的問題。“基于位置”的參考系統因此它在“正確”路徑中搜索這些文件。Idk if go modules 解決了這個問題,但至少在不使用 go modules 時你必須解決它。

你可以解決它

解決方案 1

  1. 下載您通過以下方式分叉的原始存儲庫:

去獲取http://github.com/awesome-org/tool

  1. 將您的分叉添加為遠程

git remote 添加 awesome-you-fork http://github.com/awesome-you/tool

  1. 您必須在原始下載的 repo 的文件夾中進行更改,并向/從您的叉子推送和拉取。

git pull --rebase awesome-you-fork

git push awesome-you-fork

方案二

解決 go get:您創建原始存儲庫的路徑,但將您自己的分支克隆到其中。這樣你就可以推拉你的叉子。這可能是更好的解決方案

cd $GOPATH

mkdir -p {src,bin,pkg}

mkdir -p src/github.com/awesome-org/

cd src/github.com/awesome-org/


git clone [email protected]:awesome-you/tool.git # OR: git clone https://github.com/awesome-you/tool.git

cd tool/

go get ./...

這些解決方案是在這里找到的:http://code.openark.org/blog/development/forking-golang-repositories-on-github-and-managing-the-import-path


查看完整回答
反對 回復 2023-06-05
?
qq_笑_17

TA貢獻1818條經驗 獲得超7個贊

一個 go 包的分叉副本的問題是當包實際上是一個 repo 中的多個 go 包時,導入語句引用原始基礎 repo,即:github.com/orig/repo。

對于只有一個 go 包的 repos 來說這不是問題,因為它從不引用自己。

但是如果它有多個,即:包github.com/orig/repo/A導入github.com/orig/repo/B

然后你把它分叉為:github.com/fork/repo

然后當 go 編譯器看到import "github.com/orig/repo/B"源代碼時,它會去下載原始版本而不是你的 fork。

幸運的是,go modules解決了這個問題。

go.mod基本上,在你的分叉回購的頂部?創建一個并添加:module github.com/orig/repo

然后,go 編譯器將假定您是“orig/repo”,而不管您實際上是從哪里檢出的。

所以,當orig/repo/Aimports時orig/repo/B,它會在本地查找。

如果您需要覆蓋主分支倉庫之外的其他導入,您還可以使用replace強制依賴項來自另一個地方


查看完整回答
反對 回復 2023-06-05
?
倚天杖

TA貢獻1828條經驗 獲得超3個贊

解決了

起初我以為是 FORK 的問題(這是 Go 語言 repo 的 fork 的常見問題),但事實證明,這是 Repo 特定的問題。必須重新安裝其中一個依賴庫才能使分叉的回購工作,這在原始回購文檔中沒有提到。問題不是通用的,而是特定于 repo 我按照上面鏈接中的以下步驟解決了對 go-bindata 的依賴

go?get?github.com/jteeuwen/go-bindata
cd?$GOPATH/src/github.com/jteeuwen/go-bindata/go-bindata
go?build


查看完整回答
反對 回復 2023-06-05
  • 3 回答
  • 0 關注
  • 157 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號