gpt4 book ai didi

git - 获取 fork repo 的工作流程

转载 作者:IT王子 更新时间:2023-10-29 00:47:25 25 4
gpt4 key购买 nike

我正在使用 apex并使用 go get github.com/apex/apex/cmd/apex 安装它。我有 $GOPATH/bin/apex 效果很好。我想为 apex 做出一些贡献,所以我将它 fork 并运行 go get github.com/ajcrites/apex/cmd/apex。到目前为止一切顺利。

当我想实际测试我对项目的本地更改时,问题就来了。我可以看到三个问题:

  1. 在本地运行 go build 不起作用,因为 main.go 文件直接从 $GOPATH/src/github.com/apex 导入>。为了测试目的,我需要从 $GOPATH/src/github.com/ajcrites 导入它
  2. 手动更改 main.go 以从 ajcrites 导入是不可靠的,因为我不能/不应该提交这些更改。此外,即使它确实是用我的文件构建的——我知道是因为它对它们进行了检查——发出的二进制文件根本不起作用。
  3. $GOPATH/src/github.com/ajcrites 更改为 /apex 并以这种方式构建确实有效,但存在两个问题:
    • 文件系统目录与实际的 repo 名称不匹配,这很奇怪
    • 我仍然希望能够使用 /apex 中的实际二进制文件,而不只是为了测试本地更改而破坏它

是否有推荐的方法来克隆 fork 的 go 存储库并在本地构建/测试?

最佳答案

如果您不想更改代码中的导入路径,或者不想更改项目中的源代码,请不要更改代码在 GOPATH 中的目录。如果要更改导入路径,则需要在所有源代码中重写该路径,否则最终会导入多个版本的包。

进入 $GOPATH/src/github.com/apex/apex 目录并将 origin 远程更改为您的 fork 仓库。按照惯例,我还将原始存储库添加为 upstream 远程,因此我也可以方便地从那里获取和 merge 更改。

由于从go1.6开始vendoring是默认开启的,你可以将源代码放在你控制的vendor/目录下,然后在那里进行你的修改。使用 git 子模块还可以让您将其置于单独的版本控制之下,但链接到您的项目。

关于git - 获取 fork repo 的工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35755073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com