2017-04-17 8 views
0

go get github.com/<other_user>/<repository>でインストールしたパッケージがあります。いくつかの機能が欠けていたので、元の著者と一緒にパッケージに追加しています。"go get"経由でインストールされたパッケージへの変更のプルリクエストを送信

ローカルコピーを変更してコミットしました。それから私は実現した:derp、私はこれらの変更git pushへの許可を持っていない。

私の変更を救済し、何とか彼にプルリクエストを提出する方法はありますか?それとも、私はすべての変更を失い、リポジトリをフォークし、変更を再実装してからプルリクエストを提出する必要がありますか?

私が何をしていても、このコマンドを実行する方法はありますか?

go get -u <original_repository> 

または、専任の貢献者になり、自分のリポジトリでフォークを継続的に更新する必要がありますか?

答えて

4

GitHubでリポジトリをフォークし、フォークをリモートの作業コピーにオリジン以外の名前で追加します。 git remote add myfork [email protected]。フォーク(git push myfork)に変更をプッシュし、フォークから元にPRを開くことができます。

明示的に、コマンドを使用した後、このようなものは、自分のアカウントにオリジナルをforkします:

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が正常に機能します。

パッケージに新しい変更を加える必要があるときはいつでも、このプロセスを繰り返すことができます。

+1

ローカルに存在する場合、 'go get'は何も取得しません。 'go get -u'を実行すると' git pull -ff-only'が呼び出されますが、リモートトラッキングブランチは変更されません。 – JimB

+0

ええと、私は、ff-onlyがコミットされたローカル変更で動作するかどうかは分かりません。確実に見つけ出す方法は1つだけです! – Adrian

+0

変更があった場合、早送りすることはできないので、もちろん動作しません。ローカルブランチのトラッキング情報がない場合(ブランチを作成してリモートにプッシュするときにデフォルトになります)、リモートブランチになっているので、何もしなくても実行できますあなたがちょうど押した同じもの! – JimB

関連する問題