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