2012-04-13 4 views
5

Abbiamo appena creato un progetto con bitbucket. Abbiamo messo il nostro codice di "produzione" [P] su un repository, e quindi ho creato una fork [m] di esso, e quindi anche il mio collaboratore [C] ne ha creato una fork.Non capisco il biforcarsi

[P] 
/ \ 
[M] [C] 

ho apportato alcune modifiche, e ha creato una richiesta di pull e accettato, in modo [P] ha ora il mio codice, [M].

Ecco dove sono confuso. Come fa [C], il repository dei miei collaboratori riceve il codice aggiornato?

Grazie!

risposta

9

vostro collega ha bisogno di tirare da P.

Se stai lavorando sul ramo master in P, allora il comando sarebbe ...

git pull origin master 
3

Nota: se stiamo parlando su forking (che è l'atto di clonare un pronti contro termine sul latoserver) e non semplice clonazione, lo schema è:

   BitBucket 

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

In altre parole, M e C sono sui server BitBucket, non su Muser e Cuser stazioni di lavoro locali.
'origin' sarebbe rispettivo upstream repo MLocal e CLocal, cioè M o C, non P.
(Vedere "What is the difference between origin and upstream", per GitHub, ma vale anche per BitBucket)

Questo è utile per Muser perché:

  • Muser potrebbe non voler spingere direttamente al P (che poteva però, si è il proprietario di P su BitBucket), ecco, repo M agisce come suo "buffer"
  • Cuser ha diritto a spingere P, quindi deve a forcella così

In tal caso, per Cuser di vedere eventuali aggiornamenti sulle P, si deve aggiungere P come un telecomando per CLocal repo (cioè la sua clonato repo locale della forchetta)

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

volta questi nuovi cambiamenti sono integrati e testati localmente (su CLocal), possono essere reindirizzati a C, insieme alle nuove evoluzioni introdotte da Cuser. Solo queste nuove modifiche saranno parte di un pull request, per Muser (e P proprietario) per esaminare e aggiungere al P.

Allo stesso modo, Muser sarebbe bisogno di aggiungere P come un telecomando per MLocal, al fine di ottenere indietro le modifiche da C che sono stati accettati in P.