5

我们刚刚用 bitbucket 建立了一个项目。我们将我们的“生产”[P] 代码放在一个 repo 上,然后我创建了一个 fork[m],然后我的同事 [C] 也创建了一个 fork。

    [P]
   /   \
 [M]   [C]

我做了一些更改,创建了一个拉取请求并接受了它,所以 [P] 现在有了我的代码,[M]。

这是我感到困惑的地方。[C],我的同事回购如何获得更新的代码?

谢谢!

4

2 回答 2

9

你的同事需要从 P 那里拉出来。

如果您正在masterP 中的分支上工作,那么命令将是...

git pull origin master
于 2012-04-13T23:52:10.777 回答
3

注意:如果我们实际上是在谈论分叉(这是在服务器端克隆 repo 的行为)而不是简单的克隆,那么架构是:

             BitBucket

    ------------[P]-----------
    |            ^           |
    |            |           |
 (forked) (pull request)  (forked)
    |                        |
    v                        v
   [M]                      [C]
    |                        |
----|------------------------|-----  
    |   Local workstations   |
    |                        |
 (git clone)             (git clone)
    |                        |
    v                        v
 [MLocal]                  [CLocal]

换句话说,M并且C在 BitBucket 服务器上,而不是在Muser本地Cuser工作站上。
' origin' 将是它们各自的上游存储库MLocaland CLocal,即 M 或 C,而不是P
(参见“源和上游有什么区别”,对于 GitHub,但也适用于 BitBucket)

这对 Muser 很有用,因为:

  • Muser可能不想直接推送到P(他可以,但他是PBitBucket 的所有者),所以在这里,repoM充当他的“缓冲区”
  • Cuser无权推动P,他也必须分叉

在这种情况下,Cuser要查看 上的任何更新P,他需要添加P为远程CLocal仓库(即他的 fork 的克隆本地仓库)

git remote add P https://bitbucket.org/Puser/P
git pull P master

一旦这些新的变化在本地(在CLocal)被集成和测试,它们就可以被推回C,以及Cuser. 只有那些新的修改将成为拉取请求的一部分,供Muser(和P所有者)检查并添加到 P。

同样,Muser需要将P其作为远程添加到,以便从接受的MLocal任何修改中取回.CP

于 2012-04-14T09:54:05.403 回答