web-dev-qa-db-ja.com

パブリックGitHubリポジトリをエンタープライズリポジトリにフォークすることは可能ですか?

Quickフレームワークの公開リポジトリ here が存在します。これを民間企業のGitHubリポジトリにフォークできるようにしたいと思います。分岐すると、すべてのブランチが残ります。

別の方法は、レポジトリのクローンを作成し、エンタープライズに単一のブランチのみをプッシュアップすることですが、ソース/オリジナルからのすべてのブランチを持っていないことに負けます。

更新:すべてのブランチをエンタープライズgitにプッシュすることになりました。 git Push yourRemoteName myNewBranchを実行すると、エンタープライズGitHubでブランチを作成するときに、エンタープライズgitのブランチにコードがプッシュされます。

43
j2emanue

エンタープライズGitHubインストールはパブリックインストールとは別個であるため、2つのシステムが互いのブランチ関係を追跡する方法がないため、それは不可能です。

あなたができる最善の方法は、あなたが説明したとおりです:リポジトリをクローンし、それをGHEインストールにプッシュします。そうすると、リポジトリ全体で分岐関係が失われます。

もう1つのオプションは、パブリックGHリポジトリにフォークを保持することです。場合によっては、GHEリポジトリと(手動で、またはcronjobを使用して)同期を維持します。次に、リポジトリの2つのインスタンスがあり、パブリックのインスタンスは元のリポジトリとのブランチの関係を保持します。

これをGHEに配置する必要がある理由に応じて、機能する場合と機能しない場合があります。あなたが私的な寄付をしている場合、それは明らかに機能しません。あなたの私的な寄付はもはや私的なものではないからです。内部で使用されるすべてのオープンソースプロジェクトがGHEまたは同様のものに保持されるという企業ポリシーのためにGHEで必要な場合は、リポジトリを2箇所で同期させる管理オーバーヘッドが追加されて動作します。

36
Flimzy

パブリックGitHubから直接をエンタープライズインストールに分岐することはできませんが、パブリックGitHubでフォークし、エンタープライズインストールでそのフォークされたリポジトリをミラーリングします。

手順

  1. エンタープライズGitHubに空のリポジトリを作成します。

    curl https://github.yourenterprise.com/api/v3/user/repos \-u "yourUsername"\-d "{\" name\":\" whatever-repository\"、\"private \":true} "

  2. フォークのベアクローンを作成する

    git clone --bare https://github.com/publicGitHubUser/forked-repository.git

  3. ディレクトリを変更して、ベアクローンフォルダー内に移動します。

    cd ./whatever-repository.git/

  4. 「--mirror」フラグを使用してリポジトリをエンタープライズGitHubにプッシュします

    git Push --mirror https://github.yourenterprise.com/enterpriseGitHubUser/forked-repository.git

詳細情報

https://help.github.com/articles/duplicating-a-repository/

11
Pytry