ですから、githubの上流ソースからクローンしたgitリポジトリがあります。私はそれにいくつかの変更を加えました(コミットされておらず、masterブランチにあります)。私がやりたいのは、変更を新しいブランチとしてgithubページにプッシュし、githubにそれをフォークとして表示させることです。
それは可能ですか?私はgitとgithubにかなり慣れていません。私の質問は理にかなっていますか?
私が考えることができる最も簡単な方法(私が確信している最も確実な方法です)は、githubのリポジトリをフォークすることです。ローカルで別のディレクトリに複製します。上流のOriginリポジトリを追加します。新しいフォークされたリポジトリにブランチを作成します。手作業でコードの変更を新しいローカルリポジトリにコピーします。次に、それを私のgithubにプッシュします。
これは、ディレクトリを複製せずに簡単に実行できる一般的な使用例ですか?
SO私はコマンドラインgitを使用してLinuxを使用していて、ここの人々はimo =]
既存のリポジトリからすべて実行できます(フォークを新しい(ローカル)リポジトリに複製したり、ブランチを作成したり、コミットや変更をコピーしたりする必要はありません)。
コミットを公開する準備をします。
既存のローカルコミットを調整します(例:git commit --amend
またはgit rebase --interactive
)。
公開したいコミットされていない変更をコミットします(ローカルmasterでコミットがいくつかあるか、コミットされていない変更があるか、またはコミットされていない変更があるかどうかはわかりません;ちなみに、コミットされていない変更は「ブランチ上」ではなく、厳密に作業ツリーにあります)。
masterブランチの名前を変更して、「新しいブランチ」に付ける名前を付けます。これは厳密には必要ありません(任意のブランチから他のブランチにプッシュできます)が、ローカルブランチとGitHubフォーク内のブランチが同じ名前である場合、長期的には混乱を減らす可能性があります。
git branch -m master my-feature
アップストリームのGitHubリポジトリをフォークする
(例)github.com:UpstreamOwner/repostory_name.git
as
(例)github.com:YourUser/repository_name.git
。
これはGitHub Webサイト(またはGitHub APIを使用する「クライアント」)で行われ、ローカルのGitコマンドは含まれていません。
ローカルリポジトリ(元々は上流のGitHubリポジトリから複製され、変更がmasterにあるもの)に、リモートとしてフォークリポジトリを追加します。
git remote add -f github github.com:YourUser/repository_name.git
ブランチをGitHubのフォークリポジトリにプッシュします。
git Push github my-feature
オプションで、リモートの名前を変更して、フォークが「Origin」、アップストリームが「upstream」と呼ばれるようにします。
git remote rename Origin upstream
git remote rename github Origin
リモートの名前を変更する理由の1つは、リポジトリを指定せずにgit Push
を使用できるようにするためです(デフォルトでは「Origin」)。