bitbucketを使用してプロジェクトを設定しました。'production' [P]コードをリポジトリに配置し、そのフォーク[m]を作成し、同僚[C]もそのフォークを作成しました。
[P]
/ \
[M] [C]
いくつかの変更を加え、プルリクエストを作成して受け入れたので、[P]に私のコード[M]が追加されました。
ここが私が混乱しているところです。[C]、私の同僚のリポジトリはどのようにして更新されたコードを取得しますか?
ありがとう!
同僚はPからプルする必要があります。
master
Pのブランチで作業している場合、コマンドは次のようになります...
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にも適用されます)C
Muser
Cuser
origin
MLocal
CLocal
P
これは、次の理由でMuserに役立ちます。
Muser
直接プッシュしたくない場合P
があります(ただし、彼はP
BitBucketの所有者です)。したがって、ここでは、レポM
が「バッファー」として機能します。Cuser
プッシュする権利がないP
ので、彼もフォークする必要がありますその場合、のCuser
更新を確認するには、レポジトリ(つまり、フォークのクローンローカルレポジトリ)にリモートとしてP
追加する必要があります。P
CLocal
git remote add P https://bitbucket.org/Puser/P
git pull P master
これらの新しい変更が統合され、ローカルで(上で)テストされると、によって導入された新しい進化とともに、にCLocal
プッシュバックできます。これらの新しい変更のみがプルリクエストの一部となり、(および所有者が)Pを調べて追加します。C
Cuser
Muser
P
同様に、に受け入れられた変更を元に戻すには、にリモートとしてMuser
追加する必要があります。P
MLocal
C
P