8

私はgitやgithubについてほとんど手がかりがなく、手がかりは必要ありません。しかし、ここにオープンソースプロジェクトの2行のバグ修正があります。協力の精神などで、貢献したいと思います。それが私にあまり苦痛を要しないなら。

それで、何年も前に私はリポジトリをフォークし、時々私自身の修正をいくつか行い、そしてつい最近この2行のバグ修正を行いました。すべてがマスターブランチにチェックインされ、元に戻されました。次に、2行のバグ修正のみのプルリクエストを作成します。githubはそのような機能を提供していないようです。

振り返ってみると、2行のバグ修正を行う前に、おそらく完全に別のプロジェクトブランチを作成する必要がありましたが、a)2行のコードには管理上の負担が大きすぎ、b)貢献したいとは思いませんでした。私が書いたときのバグ修正。そしてとにかく、今では手遅れです。

新しいブランチを作成することもできますが、それでも他のすべてのガベージ変更が含まれます。だから私はどこにも行きません。すべてのローカル変更を除いてアップストリームから新しいブランチを作成し、この1つの変更だけをやり直したいと思います。しかし、まったく新しいフォークを作る以外にそれを行う方法は見当たらず、まったく新しいフォークは必要ありません。

今のところ、私の最善の解決策はあきらめることです。コードは今私のために機能しますが、それは私の問題ではありません。誰かがより良い計画を持っていますか?

4

1 に答える 1

7

これを行う最も簡単な方法は、

  1. 現在の変更でブランチを設定し、アップストリームブランチに戻ります(コミットはアップストリームリポジトリに基づいている必要があります)
  2. プルリクエスト用の新しいブランチを作成します
  3. バグ修正を行っているコミットを取得します
  4. プッシュしてプルリクエストを作成します

これは

git branch my-changes
git stash #just in case you have uncommitted changes
git checkout -b bugfix upstream/master
git cherry-pick <bugfix-commit-sha>
git push --set-upstream origin bugfix

元のフォークされたリポジトリはどこupstreamですか

于 2013-02-27T08:34:02.360 に答える