Githubは既存のクローンのフォークとしてリポジトリを追加します。

Githubは既存のクローンのフォークとしてリポジトリを追加します。

そのため、githubのアップストリームソースから複製されたgitリポジトリがあります。一部の内容を変更しました(マスターブランチではコミットされません)。私が望むのは、私の変更を私のgithubページに新しいブランチにプッシュし、githubにそれをまだブランチとして扱うことです。

それは可能ですか?私はgitとgithubに初めて触れました。私の質問は理解できますか?

私が考えることができる最も簡単な方法(そして最もバイパス的な方法であると確信しています)は、githubでリポジトリをフォークすることです。別のディレクトリにローカルに複製します。アップストリームソースリポジトリを追加します。新しいフォークストアにブランチを作成します。コードの変更を新しいローカルストアに手動でコピーします。それから私のgithubにもう一度押してください。

これは一般的なユースケースです。ディレクトリをコピーせずにこれを行うより簡単な方法はありますか?

私はLinuxでコマンドラインgitを使用していて、ここで人々がより良い答えを提供したので、SOの代わりにここに尋ねると思いました。 imo=]

ベストアンサー1

既存のリポジトリでこれを行うことができます(ブランチを新しい(ローカル)リポジトリに複製したり、ブランチを作成したり、コミット/変更をコピーする必要はありません)。

  1. 提出物を投稿する準備をしてください。

    既存のローカルコミットを改善します(例:git commit --amendおよび/または使用git rebase --interactive)。

    公開するコミットされていない変更をコミットします。 (ローカルコミットがあることを暗示したいかどうかわかりません。)所有者コミットされていない変更やコミットされていない変更はありますが、コミットされていない変更は「ブランチ」にはありません。

    名前を変更してください所有者希望の「新しいポイント」名を指定します。これは必ずしも必要ではありませんが(すべてのブランチから別のブランチにプッシュできます)、ローカルブランチとGitHubブランチの名前が同じ場合は、長期的な混乱を減らすことができます。

    git branch -m master my-feature
    

  2. たとえば、アップストリームGitHubリポジトリを(github.com:UpstreamOwner/repostory_name.gitたとえば) 。
    github.com:YourUser/repository_name.git

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

  3. ローカルリポジトリ所有者)、フォークストアをリモートストアとして追加します。

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

    git push github my-feature
    
  5. (オプション)フォークを「オリジナル」と呼び、アップストリームを「アップストリーム」と呼ぶようにリモコンの名前を変更します。

    git remote rename origin upstream
    git remote rename github origin
    

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

おすすめ記事