go - 分叉存储库上的“go build”问题
问题描述
我为 GitHub 存储库(go 代码)构建了一个二进制文件,它工作正常。没有问题。我分叉了那个 repo,并修改了 HTML 文件中与 GO 代码无关的一行,为新的分叉 repo 构建了二进制文件,但它生成的二进制文件引用了原始 repo 代码,不明白为什么。
我什至使用命令清理了所有代码go clean -i all
,并手动从 $home/go/bin 和 repo 目录中删除了所有已安装的代码、二进制文件,但它仍然引用原始 repo 代码而不是新的分叉代码。
之后,我go build
在那个 repo 目录中执行,但新的二进制文件仍然引用旧代码。我什至删除了旧的二进制文件并生成了一个新文件。
解决方案
这是go中的常见问题。“基于位置”的引用系统,因此它在“正确”路径中搜索这些文件。如果 go 模块解决了这个问题,我想知道,但至少在不使用 go 模块时,你必须解决它。
你可以通过
解决方案 1
- 下载您通过以下方式分叉的原始存储库:
- 将你的叉子添加为远程
git 远程添加 awesome-you-fork http://github.com/awesome-you/tool
- 您必须在原始下载的 repo 的文件夹中进行更改,并在您的 fork 中进行推送和拉取。
git pull --rebase awesome-you-fork
git push awesome-you-fork
解决方案 2
解决方法 go get:您创建原始 repo 的路径,但将您自己的 fork 克隆到其中。这样你就可以推和拉你的叉子。这可能是更好的解决方案
cd $GOPATH
mkdir -p {src,bin,pkg}
mkdir -p src/github.com/awesome-org/
cd src/github.com/awesome-org/
git clone git@github.com: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
推荐阅读
- php - 用于 html 表单的 php 脚本不起作用
- ios - Flutter 不更新子小部件
- java - 希望使用 2 个枚举来描述 java 中的类并将它们分配给 main 函数中的类
- javascript - 根据图像大小调整 P5 Canvas 的大小
- python - numpy 点积中的 nan
- javascript - 使用androidstudio中的纬度和经度从谷歌自动完成中选择的两点之间的距离和持续时间
- html - 应用后无法保持表格的格式
- css - “display:none”是否会阻止内容被加载?
- c - 如何计算字符串中的字符数(如果没有占用所有空间)
- logging - 用于高效日志文件压缩的库