web-dev-qa-db-ja.com

既存のクローンからフォークとしてリポジトリを追加するGithub

ですから、githubの上流ソースからクローンしたgitリポジトリがあります。私はそれにいくつかの変更を加えました(コミットされておらず、masterブランチにあります)。私がやりたいのは、変更を新しいブランチとしてgithubページにプッシュし、githubにそれをフォークとして表示させることです。

それは可能ですか?私はgitとgithubにかなり慣れていません。私の質問は理にかなっていますか?

私が考えることができる最も簡単な方法(私が確信している最も確実な方法です)は、githubのリポジトリをフォークすることです。ローカルで別のディレクトリに複製します。上流のOriginリポジトリを追加します。新しいフォークされたリポジトリにブランチを作成します。手作業でコードの変更を新しいローカルリポジトリにコピーします。次に、それを私のgithubにプッシュします。

これは、ディレクトリを複製せずに簡単に実行できる一般的な使用例ですか?

SO私はコマンドラインgitを使用してLinuxを使用していて、ここの人々はimo =]

21
Falmarri

既存のリポジトリからすべて実行できます(フォークを新しい(ローカル)リポジトリに複製したり、ブランチを作成したり、コミットや変更をコピーしたりする必要はありません)。

  1. コミットを公開する準備をします。

    既存のローカルコミットを調整します(例:git commit --amendまたはgit rebase --interactive)。

    公開したいコミットされていない変更をコミットします(ローカルmasterでコミットがいくつかあるか、コミットされていない変更があるか、またはコミットされていない変更があるかどうかはわかりません;ちなみに、コミットされていない変更は「ブランチ上」ではなく、厳密に作業ツリーにあります)。

    masterブランチの名前を変更して、「新しいブランチ」に付ける名前を付けます。これは厳密には必要ありません(任意のブランチから他のブランチにプッシュできます)が、ローカルブランチとGitHubフォーク内のブランチが同じ名前である場合、長期的には混乱を減らす可能性があります。

    git branch -m master my-feature
    
  2. アップストリームのGitHubリポジトリをフォークする
    (例)github.com:UpstreamOwner/repostory_name.git as
    (例)github.com:YourUser/repository_name.git

    これはGitHub Webサイト(またはGitHub APIを使用する「クライアント」)で行われ、ローカルのGitコマンドは含まれていません。

  3. ローカルリポジトリ(元々は上流のGitHubリポジトリから複製され、変更がmasterにあるもの)に、リモートとしてフォークリポジトリを追加します。

    git remote add -f github github.com:YourUser/repository_name.git
    
  4. ブランチをGitHubのフォークリポジトリにプッシュします。

    git Push github my-feature
    
  5. オプションで、リモートの名前を変更して、フォークが「Origin」、アップストリームが「upstream」と呼ばれるようにします。

    git remote rename Origin upstream
    git remote rename github Origin
    

    リモートの名前を変更する理由の1つは、リポジトリを指定せずにgit Pushを使用できるようにするためです(デフォルトでは「Origin」)。

22
Chris Johnsen

ツールがあります: hub

hubは、GitHubでの作業を容易にする追加の機能とコマンドで拡張するためにgitをラップするコマンドラインツールです。

今することができます:

# cd to a cloned repo with uncommited changes
git checkout -b feature
git commit -am 'done with feature'
git fork
git Push YOUR_USER feature
# git pull-request
0