web-dev-qa-db-ja.com

読み取り専用のgitクローンをgithubからforkedに変換する方法

時々私はこの問題に遭遇します。

Railsのソースコードを読むために以下を実行したとしましょう。問題が発生しているためです。

git clone git://github.com/Rails/rails.git

調査中に何かをテストしましたが、修正がありましたRailsコアチームに見てもらいたいです。変更をフォークバージョンのRailsにプッシュするにはどうすればよいですか。

クローンを作成したとき、フォークバージョンではなく読み取り専用バージョンのクローンを作成したことを思い出してください。

私がフォークに反対しているわけではありません。ただ閲覧するだけだと思って、何かを追加したいだけなのです。

80
Nick Vanderbilt

リポジトリを複製すると、複製したリポジトリを参照するOriginというリモートが自動的にセットアップされます。これは現在、上流のRailsプロジェクトを指していますが、プッシュできる独自のフォークを作成してから、そこにポイントするリモートをセットアップしてプッシュできるようにする必要があります。 。

最初のステップは、上流のGitHubプロジェクトページの[フォーク]ボタンをクリックすることです( GitHubのフォークに関する説明 の画像):

GitHub fork button

それが完了したら、そのリポジトリのURLを見つけてコピーします。読み取りおよび書き込みアクセス権があるSSH URLを使用していることを確認してください。ユーザー名がnadalであると仮定すると、[email protected]:nadal/Rails.gitのようになります。

これで、リモートを作成できるようになりました。これにより、Gitはリモートリポジトリを追跡し、アクセスに応じてそこからプルしたりプッシュしたりできます。 Originをプッシュ先のリモコン(設定している人の数)に置き換えるか、Originをアップストリームに向けたままにして、代わりに新しいリモコンを作成するかを選択できます。最初のセットアップ方法を紹介します。 2番目は簡単に理解できるはずです。

OriginをGitHubのフォークを指すように変更するには、おそらく上流のブランチをどこかに置いておきたいので、名前をupstreamに変更します。

git remote rename Origin upstream

次に、フォークを指す新しいリモコンを作成します。

git remote add -f Origin [email protected]:nadal/Rails.git

そして今、あなたはあなたの新しいフォークにプッシュすることができるはずです:

git Push Origin master

GitHubにプッシュした変更に満足し、Railsチームの誰かに見てもらいたい場合は、2つの選択肢があります。1つは 送信する)です。プルリクエスト GitHubを使用。その方法については、ドキュメントを参照してください。ただし、1つまたはいくつかの小さなパッチしかない場合は、Railsチームが次のことをお勧めします- 灯台チケットを作成 パッチを添付します。詳細については、 Railsへの貢献 の手順を参照してください。

editこれは、何が起こっているかを示す図です。これで、アップストリームRailsリポジトリのクローンを作成するだけです。これで、git://github.com/Rails/rails.gitOriginとして参照する独自のリポジトリが自分のマシンに作成されました。

 Github:git://github.com/Rails/rails.git 
 ^ 
 | 
リモート:Origin 
 | 
あなたのマシン:Rails /

フォークしてクローンを作成すると、次のようになります。

 Github:git://github.com/Rails/rails.git <[email protected]:nadal/Rails.git 
 ^ 
 | 
リモート:Origin 
 | 
お使いのマシン:Rails /

私の指示に従えば、ここにあなたが得るものがあります:

 Github:git://github.com/Rails/rails.git <[email protected]:nadal/Rails.git 
 ^ ^ 
 | | 
リモート:アップストリームオリジン
 | | [。

これは、フォークで取得するバージョンと同じですが、upstreamリモートもあるため、公式の変更を追跡してコードにマージできます(フォークバージョンを作成した場合は、おそらくupstreamリモートも追加したい)。

112
Brian Campbell

クローンモードからフォークモードに切り替える非常に簡単な方法は、 http://hub.github.com/hubラッパーを使用することです。

これがインストールされたら、実行するだけです

hub fork

読み取り専用クローン内から。

3

それは問題ではありません。必要に応じて、フォークされていないリポジトリを指定して、別のリモートを追加できます。それに変更をプッシュします。

1
Adam Dymitruk

または、フォークしたくない場合は、メンテナンスチームによっては、パッチを作成して送信することもできます。通常は、他のコメントで説明されているようにgithubでフォークするか、独自のgitリポジトリでフォークしてリポジトリを利用できるようにし、元のリポジトリのメンテナに、マージするリポジトリとブランチへの情報を提供します。

0
Svenito