我有一个通过go get github.com/<other_user>/<repository>
安装的软件包。它缺少一些功能,所以我一直在与原作者一起将它们添加到包中。
我对我的本地副本进行了更改并提交了它们。然后我意识到:derp,我没有git push
这些变化的授权。
我有办法挽救我的变化并以某种方式向他提出拉动请求吗?或者我是否必须丢失所有更改,分叉他的存储库,重新实现我的更改,然后提交拉取请求?
无论我做什么,有没有办法让我保留执行此命令的能力?
go get -u <original_repository>
或者我是否必须成为一名全职撰稿人并不断更新我的存储库?
答案 0 :(得分:4)
将代码放入GitHub中,然后将您的fork作为远程工具副本添加到工作副本中,而不是来源,例如git remote add myfork git@github.org...
。您可以将更改推送到fork(git push myfork
),然后从fork打开PR到原始。
显然,在将原始文件分配到您自己的帐户之后,命令会是这样的:
git remote add myfork https://github.com/<your_username>/<repository>.git
git push myfork
之后,您可以将PR提交给原件。如果您的PR被接受,则可以运行以下命令:
git remote remove myfork
git rebase master
git pull origin master
然后,您可以从GitHub帐户中删除您的分叉。之后,go get -u
将正常运作。
每当您需要对软件包进行新的更改时,您都可以重复此过程。