Go 如果我想对forked存储库进行更改,却发现由于forked包导入自身而无法进行更改,该怎么办

Go 如果我想对forked存储库进行更改,却发现由于forked包导入自身而无法进行更改,该怎么办,go,github,Go,Github,比如,我分叉了存储库并对代码进行了一些更改。当我运行它时,我的更改不会生效,因为原始代码会导入自身。我可以简单地将导入库更改为我的,如“import github.com/brucewangno1/ytdl”。但是有没有其他干净的方法来避免这种情况呢 使用回购的golang forks时,请尝试使用原始回购的导入路径,并更新工具以使用您的Forke回购 我的意思是,如果您将项目github.com/rylio/ytdl/转移到您自己的github帐户github.com/brucewangno1

比如,我分叉了存储库并对代码进行了一些更改。当我运行它时,我的更改不会生效,因为原始代码会导入自身。我可以简单地将导入库更改为我的,如“import github.com/brucewangno1/ytdl”。但是有没有其他干净的方法来避免这种情况呢

使用回购的golang forks时,请尝试使用原始回购的导入路径,并更新工具以使用您的Forke回购

我的意思是,如果您将项目
github.com/rylio/ytdl/
转移到您自己的github帐户
github.com/brucewangno1/ytdl

git remote add fork git@github.brucewangno1/tydl.git
然后您可能有一个gopath,例如:

$GOPATH/src/github.com
├── rylio
│   └── ytdl
└── brucewangno1
    └── ytdl
您应该在目录
$GOPATH/src/github.com/rylio/ytdl
中进行更改

要将更改添加到分叉回购中,您可以在本地克隆的
rylio/ytdl

git remote add fork git@github.brucewangno1/tydl.git
如果您不打算将变更合并回上游回购协议,您可以使用
dep
等工具确保您自己完成该项目,而不是上游项目。比如:

[[constraint]]
name = "github.com/c/d
source = "https://github.com/myusername/d.git"
这个答案假设您使用了分叉存储库 到

您需要在
$GOPATH
中创建名为
rylio
的目录,并将fork克隆到该目录中

mkdir $GOPATH/src/github.com/rylio

cd $GOPATH/src/github.com/rylio

git clone https://github.com/brucewangno1/ytdl 

现在,您将不会面临任何与导入相关的问题。

另一个简单的方法是使用
go get

$ go get github.com/original/a_library
$ cd $GOPATH/src/github.com/original/a_library
$ git remote add my_origin https://github.com/myaccount/a_library
在你的情况下是这样的

$ go get github.com/rylio/ytdl
$ cd $GOPATH/src/github.com/rylio/ytdl
$ git remote add my_origin https://github.com/brucewangno1/ytdl
完成更改后,请提交更改并使用以下命令推送:

$ git push my_origin my_branch

可能是重复的谢谢。你帮了大忙!真有趣!谢谢