bitbucketを使用してプロジェクトを設定しました。'production' [P]コードをリポジトリに配置し、そのフォーク[m]を作成し、同僚[C]もそのフォークを作成しました。
[P]
/ \
[M] [C]
いくつかの変更を加え、プルリクエストを作成して受け入れたので、[P]に私のコード[M]が追加されました。
ここが私が混乱しているところです。[C]、私の同僚のリポジトリはどのようにして更新されたコードを取得しますか?
ありがとう!
同僚はPからプルする必要があります。
masterPのブランチで作業している場合、コマンドは次のようになります...
git pull origin master
注:単純なクローン作成ではなく、実際にフォーク(サーバー側でリポジトリのクローンを作成する行為)について話している場合、スキーマは次のようになります。
BitBucket
------------[P]-----------
| ^ |
| | |
(forked) (pull request) (forked)
| |
v v
[M] [C]
| |
----|------------------------|-----
| Local workstations |
| |
(git clone) (git clone)
| |
v v
[MLocal] [CLocal]
つまり、ローカルワークステーションではなく、BitBucketサーバー上にMあります。
' 'は、とのそれぞれのアップストリームリポジトリ、つまり、ではなくMまたはCになります。
( GitHubについては、「オリジンとアップストリームの違いは何ですか」を参照してください。ただし、BitBucketにも適用されます)CMuserCuseroriginMLocalCLocalP
これは、次の理由でMuserに役立ちます。
Muser直接プッシュしたくない場合Pがあります(ただし、彼はPBitBucketの所有者です)。したがって、ここでは、レポMが「バッファー」として機能します。Cuserプッシュする権利がないPので、彼もフォークする必要がありますその場合、のCuser更新を確認するには、レポジトリ(つまり、フォークのクローンローカルレポジトリ)にリモートとしてP追加する必要があります。PCLocal
git remote add P https://bitbucket.org/Puser/P
git pull P master
これらの新しい変更が統合され、ローカルで(上で)テストされると、によって導入された新しい進化とともに、にCLocalプッシュバックできます。これらの新しい変更のみがプルリクエストの一部となり、(および所有者が)Pを調べて追加します。CCuserMuserP
同様に、に受け入れられた変更を元に戻すには、にリモートとしてMuser追加する必要があります。PMLocalCP