web-dev-qa-db-ja.com

githubのブランチからフォーク

GitHubの特定のブランチからフォークする方法はありますか? …例えば、moodleには多くのブランチがあります(1.9、2.0など)。常にマスターブランチではなくブランチ1.9だけのクローンを実行できますか? PCに特定のブランチを複製することはできますか?

33
jan

ネイティブの方法はまだわかりませんが、次のレシピに従って行うことができます。

  1. GitHubウェブサイトの問題のリポジトリ(「アップストリーム」と呼ばれる)をワークスペースにフォークします。
  2. GitHubデスクトップアプリケーションを実行し、リポジトリをPCに複製します。
  3. GitHubデスクトップアプリケーションを使用して、リポジトリでシェルを開きます。 (gitコマンドは、手動で構成しない限り、既定のPowerShellからは使用できません。)
  4. ソースリポジトリをアップストリームとして設定します。

    git remote add upstream https://github.com/{user}/{source-repo}.git
    
  5. 完全なアップストリームリポジトリを取得します。 (現在、masterブランチのコピーしかありません。)

    git fetch upstream
    
  6. ファイルシステムに必要なブランチをコピーさせ、任意の名前を付けます。

    git checkout upstream/{branch-in-question}
    git checkout -b temporary
    
  7. GitHubデスクトップアプリケーションを使用してリポジトリを公開します。

  8. GitHubのWebサイトでリポジトリを開き、[設定]をクリックします。
  9. 「デフォルトのブランチ」を「一時的」に変更します。 (ドロップダウンメニューを変更するだけですしないでください [名前の変更]ボタンをクリックする必要があります)。
  10. リポジトリに戻り、「ブランチ」タブに移動すると、「マスター」ブランチを削除できます。
  11. シェルのマスターブランチを削除し、新しいマスターブランチを作成します。

    git branch -d master
    git branch master
    git checkout master
    git -d temporary
    
  12. もう一度、GitHubデスクトップアプリケーションを使用してリポジトリを公開します。

  13. GitHubのWebサイトでリポジトリを開き、[設定]をクリックします。
  14. 「デフォルトのブランチ」を(新しい)「マスター」ブランチに戻します。
  15. リポジトリに戻り、「ブランチ」タブに移動します。これで「一時的な」ブランチを削除できます。

これはあなたが探していたはずです。おそらく、GitHubは将来これを行うためのより便利な方法を提供するでしょう(たとえば、プロジェクトのブランチから「フォーク」をクリックすると、まさにこの動作になります)。

23
Matthias Ronge

複製とは、すべてのブランチとタグを含む、アカウント内のリポジトリ全体のコピーを作成することを意味します。ただし、ブランチは自由に切り替えて追跡できます。

8
iltempo

コマンドラインを使用したくない人のために。 GitHubのデスクトップクライアントを使用した簡単なガイドを次に示します。

  1. GitHub.comのリポジトリのフォークボタンをクリックします。 step1

  2. デスクトップクライアント がインストールされていることを確認します

  3. このボタンをクリックしてください: step2

  4. レポのクローンを作成する

step3

  1. デスクトップクライアントで、目的のブランチを選択します

step4

  1. 作業したいブランチを選択すれば完了です

step5

1
Timo

はい、単一のブランチを複製できます。たとえば、release1.0という名前のブランチがあるとします。このブランチをPCに複製する場合は、次のコード行を使用します。

$ git clone [email protected]:git_username/git_repository_example -b release1.0 --single-branch
1
Ishwor Khanal

私はbitbucketを使用していますが、これはGitHubでも機能すると確信しています。

  1. 新しいリポジトリを作成する
  2. GitExtensionsを使用してブランチをチェックアウトする
  3. [プッシュ]をクリックして[プッシュ]ダイアログを開きます
  4. 宛先URLを新しいリポジトリに設定します
  5. 宛先ブランチを「マスター」に設定します
  6. 押す

新しいリポジトリには、1つのブランチのみの完全な履歴が含まれます(forkingのようなすべてのブランチが持つわけではありません)。

GitExtensions Push Dialog

0
Rob

ソースリポジトリで必要なブランチに切り替えます[フォーク]をクリックします。分岐したマスターと現在のブランチが表示されます。他のブランチでどのように機能するかはわかりませんが、私のニーズではかなりうまくいきました。

0
amarax

高速な代替アプローチは、独自の新しいリポジトリを作成することです

https://github.com/new に移動して、新しいリポジトリを作成します。 READMEで初期化しないでください。

下にスクロールしてgit remote

enter image description here

次に:

git remote rm Origin
git config master.remote Origin
git config master.merge refs/heads/master
// Run code from above image
git Push --set-upstream Origin yourbranchname

元のレポのコードとプルリクエストにできるブランチを持つ新しいレポができます。

0