質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

Q&A

解決済

2回答

385閲覧

リポジトリAをforkしたリポジトリBからAに対してプルリクを出した場合についてです。

Hayato1201

総合スコア222

Git

Gitはオープンソースの分散バージョン管理システム(DVCS)です。

0グッド

1クリップ

投稿2023/03/15 13:14

普段開発しているリポジトリ A を fork したリポジトリ B から A に対しプルリクが来ました。

その場合マージ対象のBのブランチの動作確認をしたい場合、そのリポジトリを一度クローンするしか無いでしょうか?

例えば A の master ブランチで普段作業していてそこから checkout してできた develop ブランチをマージするためのプルリクであれば一旦 develop ブランチに checkout してから pull してアプリケーションの起動をすれば動作確認もすぐに可能かと思います。

しかし A を fork した B というリポジトリからの場合は別途 clone が必要という事になるでしょうか??

このあたりの認識として間違いがあるか、などご教示いただけますと助かります。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

まだ解決してないんですかね。

git cloneは、大まかに言うと

sh

1git init ローカルリポジトリの場所 2git remote add origin リモートリポジトリのURL 3git fetch origin

というようなことをまとめてやってくれます。つまり、ローカルリポジトリを作成し、それをリモートリポジトリとoriginという名前で紐づけ、リモートリポジトリoriginfetchします。

ところで、リモートリポジトリがoriginだけでなければならないことはないです。ローカルリポジトリを他のリモートリポジトリとも紐づけることができます。

git remote add fork-b ユーザBのリポジトリのURL git fetch fork-b

これでユーザBのリポジトリがfork-bという名前で紐づけられるので、git branch -aするとリモートのブランチとしてoriginのものに加えてfork-bのものも見えるはずです。それらをチェックアウト (してoriginにpush) すればローカルで扱えます (自分のoriginのもともとのブランチと混同しないよう、チェックアウトするブランチの名前をb/developなどにするといいでしょう)。

このように、git initで作られたひとつのローカルリポジトリに複数のリモートリポジトリを紐づけることができます。もちろんfork元のリポジトリと何の関係もないものを紐づけても意味がありません (共通のコミットがまったくないブランチ同士をマージしても仕方がないですね) が、やろうと思えばできてしまいます。

投稿2023/09/04 03:49

編集2023/09/04 04:29
ikedas

総合スコア4354

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ikedas

2023/09/04 04:38 編集

余談ですが、この方法を使えば、フォーク元のリポジトリに対してではなく、ユーザBのリポジトリにプルリクエストを出すこともできます。つまりbaseが ユーザBのリポジトリの develop ブランチ、headが自分のリポジトリの b/develop ブランチとなるプルリクエストが出せます。 「ユーザBが提出したプルリクを見ていたら、修正してほしいところがあった」といったときにこの方法を使えば、ユーザBにそれをマージしてもらうことでフォーク元のプルリクに修正を反映してもらえます。
guest

0

回答が無いようなので、、、、
「 A を fork した B というリポジトリからの場合は別途 clone が必要」ということはない、と認識しています。
forkだろうがcloneだろうが 同じprojectです。
というか、commit ID が同じものは、同じものです。

ですから、
プルリクされた A のbranch と同じcommit ID な localの branchに、
pull を request した branch をpull すればテストできます。

投稿2023/03/18 23:55

winterboum

総合スコア23376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Hayato1201

2023/03/19 08:36 編集

ご回答ありがとうございます。 要は A のブランチから B のレポジトリのブランチを git branch -a とかで確認できるし, A で B のリモートブランチからローカルブランチを作成可能という事でしょうか?であればそれはどのようにすれば可能ですか? git remote add とかで fork 先の方を remote に追加するとかですか?
winterboum

2023/03/19 11:58 編集

「 A のブランチから B のレポジトリのブランチを git branch -a とかで確認」とか考える必要はないです。 A にプルリクしたってことは AにそのbranchがPUSHされてるってことですから、Aからとれば良いでしょう
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問