2つの間でプルリクエストを使用してパブリック/プライベートgitリポジトリを作成する方法

シモーネガイアリン

私はgithubに公開リポジトリを持っており、私のグループの各ユーザーはそれのフォークを持っています。ポリシーでは、メインリポジトリに直接コミットすることは禁止されており、すべての変更は、メインリポジトリにマージされる前に確認できるように、フォークからのプルリクエストとして受信する必要があります。

メインリポジトリで公開する前に一定期間非公開にする必要があるコードを開発することがあることを考えると、次のような状況が必要です。

  • メインリポジトリパブリック
  • プライベートフォーク
  • フォークからメインリポジトリへのプルリクエストを行うことができます
  • 一部のユーザーはgitの初心者であることを考えると、物事を簡単にしてください

現在、Githubでは、プライベートフォークが許可されていないため、これは不可能です。

同様の動作を実現するためにどのような戦略を使用できますか?

Gaurav Arya

私はこれに似た何かをしました。私にとってうまくいった解決策は、メインリポジトリのベアクローンとして新しいプライベートリポジトリを作成し、すべての新しい変更をこのプライベートリポジトリにプッシュし、変更を公開する準備ができたら、変更をにプッシュすることでした。パブリックレポ。



次の手順に従いました:この質問への回答:Martin Konicek


  1. まず、他の人が言ったようにリポジトリを複製します(詳細はこちら):

Github UIをprivate-repo介して新しいリポジトリを作成します(これを呼びましょう次に:

git clone --bare https://github.com/exampleuser/public-repo.git
cd public-repo.git
git push --mirror https://github.com/yourname/private-repo.git
cd ..
rm -rf public-repo.git

  1. プライベートリポジトリのクローンを作成して、作業できるようにします。

    git clone https://github.com/yourname/private-repo.git cdprivate-repoいくつかの変更を加えるgitcommit git push origin master


3.パブリックリポジトリから新しい変更をプルするには:

cd private-repo
git remote add public https://github.com/exampleuser/public-repo.git
git pull public master # Creates a merge commit
git push origin master

すばらしいことに、プライベートリポジトリには、パブリックリポジトリからの最新のコードと変更が含まれています。


  1. 最後に、プルリクエストのプライベートリポジトリ->パブリックリポジトリを作成するには:

プルリクエストを作成する唯一の方法は、パブリックリポジトリへのプッシュアクセスを持つことです。これは、そこのブランチにプッシュする必要があるためです(理由は次のとおりです)。

git clone https://github.com/exampleuser/public-repo.git
cd public-repo
git remote add private_repo https://github.com/yourname/private-repo.git
git checkout -b pull_request_branch
git pull private_repo master
git push origin pull_request_branch

ここで説明するように、パブリックリポジトリのGithubUIを介してプルリクエストを作成するだけです

プロジェクトでプルリクエストを確認したら、それをマージできます。

もちろん、プロセス全体を繰り返すことができます(リモートを追加する手順は省略してください)。初めての場合は、必要なリモート(パブリックまたはプライベート)からプルして(プライベート)にプッシュするだけです。変更が完了したら、変更を(private:最新の状態に保つために)パブリックのブランチにプッシュして、マスターへのプルリクエストを作成できるようにします。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

初期化シェルスクリプトを使用してプライベートgitリポジトリのクローンを作成する方法

分類Dev

Git:親リポジトリから分割せずにプライベートリポジトリのサブフォルダをパブリックリポジトリとして作成するにはどうすればよいですか?

分類Dev

PhpStormを使用してパブリックGitHubリポジトリをプライベートリポジトリにプッシュする方法は?

分類Dev

無料アカウントでプライベートファイルを使用してパブリックリポジトリを作成できますか?

分類Dev

プライベートgitサーバーでパブリックgitリポジトリを分岐します

分類Dev

sshを使用してフラッターでプライベートリポジトリパッケージにアクセスする方法は?

分類Dev

sparqlクエリを使用してオブジェクトプロパティを持つ2つのクラス間の関係を取得する方法

分類Dev

gitoliteのchefを使用してプライベートgitリポジトリをプルする方法

分類Dev

node.jsでプライベートgitリポジトリのクローンを作成する方法

分類Dev

nix派生でプライベートgitリポジトリのクローンを作成する方法

分類Dev

ローカルリポジトリなしでネットワークパスからLibGit2Sharpを使用してGitリポジトリのブランチとコミットをフェッチする方法は?

分類Dev

環境エラーpipconfのプライベートレジストリを使用してパブリックレジストリにパッケージをインストールする

分類Dev

HTTPエンドポイントAzureを使用してパブリックストレージを作成する方法

分類Dev

HTTPエンドポイントAzureを使用してパブリックストレージを作成する方法

分類Dev

アクセスリンクを介してプライベートgitリポジトリを共有する

分類Dev

awkスクリプトを使用して2つのパターン間でテキストをプルする

分類Dev

スクリプトを使用してプライベートGithubリポジトリのクローンを作成する

分類Dev

groovyスクリプトを使用してマルチパイプラインジョブからgitリポジトリを取得する

分類Dev

ブートストラップラベルを使用してJqueryをリダイレクトする方法

分類Dev

フォークされたプライベートリポジトリ、複製してパブリックリポジトリを作成

分類Dev

ルートインポートプラグインを使用してGatsbyでNPMパッケージのエイリアスを作成する

分類Dev

プライベートモジュールでパブリック変数を作成する方法

分類Dev

コンストラクター内で共通のパブリック関数を使用してプライベート変数にアクセスする方法

分類Dev

特定のプル リクエストを除いて、メイン リポジトリからテスト ブランチを作成する方法

分類Dev

パイプ演算子を使用して、2つのPythonスクリプト間でデータの複数のバッチをストリーミングする

分類Dev

apache2 / nodejs /デジタルオーシャンサーバーでのエクスプレス-使用中のアドレスエラーなしでパブリックポート(80)をリッスンする方法

分類Dev

Ruby onRailsを使用してイメージを介してブートストラップモーダルへのリンクを作成する方法

分類Dev

PIPからパッケージをインストールしている間、プライベートリポジトリ/サーバーを使用して

分類Dev

Javaエージェント(Byte Buddy)を使用して、既存のフィールドをプライベートからパブリックに変換する

Related 関連記事

  1. 1

    初期化シェルスクリプトを使用してプライベートgitリポジトリのクローンを作成する方法

  2. 2

    Git:親リポジトリから分割せずにプライベートリポジトリのサブフォルダをパブリックリポジトリとして作成するにはどうすればよいですか?

  3. 3

    PhpStormを使用してパブリックGitHubリポジトリをプライベートリポジトリにプッシュする方法は?

  4. 4

    無料アカウントでプライベートファイルを使用してパブリックリポジトリを作成できますか?

  5. 5

    プライベートgitサーバーでパブリックgitリポジトリを分岐します

  6. 6

    sshを使用してフラッターでプライベートリポジトリパッケージにアクセスする方法は?

  7. 7

    sparqlクエリを使用してオブジェクトプロパティを持つ2つのクラス間の関係を取得する方法

  8. 8

    gitoliteのchefを使用してプライベートgitリポジトリをプルする方法

  9. 9

    node.jsでプライベートgitリポジトリのクローンを作成する方法

  10. 10

    nix派生でプライベートgitリポジトリのクローンを作成する方法

  11. 11

    ローカルリポジトリなしでネットワークパスからLibGit2Sharpを使用してGitリポジトリのブランチとコミットをフェッチする方法は?

  12. 12

    環境エラーpipconfのプライベートレジストリを使用してパブリックレジストリにパッケージをインストールする

  13. 13

    HTTPエンドポイントAzureを使用してパブリックストレージを作成する方法

  14. 14

    HTTPエンドポイントAzureを使用してパブリックストレージを作成する方法

  15. 15

    アクセスリンクを介してプライベートgitリポジトリを共有する

  16. 16

    awkスクリプトを使用して2つのパターン間でテキストをプルする

  17. 17

    スクリプトを使用してプライベートGithubリポジトリのクローンを作成する

  18. 18

    groovyスクリプトを使用してマルチパイプラインジョブからgitリポジトリを取得する

  19. 19

    ブートストラップラベルを使用してJqueryをリダイレクトする方法

  20. 20

    フォークされたプライベートリポジトリ、複製してパブリックリポジトリを作成

  21. 21

    ルートインポートプラグインを使用してGatsbyでNPMパッケージのエイリアスを作成する

  22. 22

    プライベートモジュールでパブリック変数を作成する方法

  23. 23

    コンストラクター内で共通のパブリック関数を使用してプライベート変数にアクセスする方法

  24. 24

    特定のプル リクエストを除いて、メイン リポジトリからテスト ブランチを作成する方法

  25. 25

    パイプ演算子を使用して、2つのPythonスクリプト間でデータの複数のバッチをストリーミングする

  26. 26

    apache2 / nodejs /デジタルオーシャンサーバーでのエクスプレス-使用中のアドレスエラーなしでパブリックポート(80)をリッスンする方法

  27. 27

    Ruby onRailsを使用してイメージを介してブートストラップモーダルへのリンクを作成する方法

  28. 28

    PIPからパッケージをインストールしている間、プライベートリポジトリ/サーバーを使用して

  29. 29

    Javaエージェント(Byte Buddy)を使用して、既存のフィールドをプライベートからパブリックに変換する

ホットタグ

アーカイブ