どうすれば公開リポジトリをフォークできますが、自分のフォークをプライベートにできますか?私はプライベートリポジトリをサポートするサブスクリプションを持っています。
どうすれば公開リポジトリをフォークできますが、自分のフォークをプライベートにできますか?私はプライベートリポジトリをサポートするサブスクリプションを持っています。
回答:
答えは正しいですが、パブリックリポジトリとフォークの間でコードを同期する方法については触れません。
以下が完全なワークフローです(React Nativeをオープンソースする前にこれを行いました)。
まず、他の人が言ったようにリポジトリを複製します(詳細はこちら):
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
プライベートリポジトリのクローンを作成して、作業できるようにします。
git clone https://github.com/yourname/private-repo.git
cd private-repo
make some changes
git commit
git push origin master
パブリックリポジトリから新しいホットさを引き出すには:
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
これで、プライベートリポジトリにパブリックリポジトリの最新のコードと変更が追加されました。
最後に、プルリクエストを作成するにはプライベートリポジトリ->パブリックリポジトリ:
GitHub UIを使用して、パブリックリポジトリのフォーク(パブリックリポジトリページの右上にある小さな「フォーク」ボタン)を作成します。次に:
git clone https://github.com/yourname/the-fork.git
cd the-fork
git remote add private_repo_yourname https://github.com/yourname/private-repo.git
git checkout -b pull_request_yourname
git pull private_repo_yourname master
git push origin pull_request_yourname
説明するように今、あなたは、公共・レポのためにGithubのUIを介しプルリクエストを作成することができ、ここで。
プロジェクトオーナーがプルリクエストを確認したら、それをマージできます。
もちろん、プロセス全体を繰り返すことができます(リモコンを追加する手順は省略してください)。
git clone
リモート追跡の枝をセットアップすると、おそらくクローンレポでいくつかの他の設定は、あなたが本当に望んでいないこと。一方--bare cloneは、リモートから.git dirをそのままコピーするだけです。
git status
最新のものをすべて表示し、何を変更しても作業ツリーはクリーンです。その結果、私は何もコミットしてプッシュすることはできません。これを試すためにさらに2回作成した新しいプライベートリポジトリを削除しましたが、同じ問題が発生し続けました。助言がありますか?
現在、もう1つのオプションがあります(2015年1月)
現在の答えは少し古くなっているので、明確にするために:
短い答えは:
これはGitHubに記載されています:リポジトリの複製
リポジトリを複製する必要があります
あなたはこのドキュメントを見ることができます(githubから)
フォークせずにリポジトリの複製を作成するには、元のリポジトリに対して特別なcloneコマンドを実行し、新しいリポジトリにミラープッシュする必要があります。
次の場合、プッシュしようとしているリポジトリ(exampleuser / new-repositoryやexampleuser / mirroredなど)は、GitHubにすでに存在しているはずです。詳細については、「新しいリポジトリの作成」を参照してください。
リポジトリのミラーリング
完全に複製するには、ベアクローンとミラープッシュの両方を実行する必要があります。
コマンドラインを開き、次のコマンドを入力します。
$ git clone --bare https://github.com/exampleuser/old-repository.git # Make a bare clone of the repository $ cd old-repository.git $ git push --mirror https://github.com/exampleuser/new-repository.git # Mirror-push to the new repository $ cd .. $ rm -rf old-repository.git # Remove our temporary local repository
元の場所からの更新の取得など、別の場所にあるリポジトリをミラーリングする場合は、ミラーのクローンを作成して、定期的に変更をプッシュできます。
$ git clone --mirror https://github.com/exampleuser/repository-to-mirror.git # Make a bare mirrored clone of the repository $ cd repository-to-mirror.git $ git remote set-url --push origin https://github.com/exampleuser/mirrored # Set the push location to your mirror
ベアクローンと同様に、ミラークローンにはすべてのリモートブランチとタグが含まれますが、フェッチするたびにすべてのローカル参照が上書きされるため、常に元のリポジトリと同じになります。pushのURLを設定すると、ミラーへのpushが簡単になります。ミラーを更新するには、更新をフェッチしてプッシュします。これは、cronジョブを実行することで自動化できます。
$ git fetch -p origin $ git push --mirror