Ag obair le Git agus GitHubLink to this heading
Míníonn an chuid seo conas is féidir leis an bpobal cód a chur le Django trí iarratais tarraingthe. Má tá su <mergers-team>im agat conas a láimhseálann: ref: cumaisc `iad, féach: doc:.. /cód tiomanta `.
Anseo thíos, táimid chun a thaispeáint conas iarratas tarraingthe GitHub a chruthú ina bhfuil na hathruithe ar thicéad Trac #xxxxx. Trí iarratas tarraingthe go hiomlán réidh a chruthú, déanfaidh tú post an athbhreithnitheora níos éasca, rud a chiallaíonn gur dóichí go ndéanfar d'obair a chumasc i Django.
D'fhéadfá paiste traidisiúnta a uaslódáil chuig Trac freisin, ach níl sé chomh praiticiúil le haghaidh athbhreithnithe.
Git á shuiteáilLink to this heading
Úsáideann Django `Git `_ chun a rialú foinse. Is féidir leat `íoslódáil `_ < https://git-scm.com/download> Git, ach is minic a bhíonn sé níos éasca a shuiteáil le bainisteoir pacáiste do chórais oibriúcháin.
Óstáiltear Stórlann Git `_ Django ar `GitHub, agus moltar duit oibriú ag baint úsáide as GitHub freisin.
Tar éis Git a shuiteáil, is é an chéad rud ba chóir duit a dhéanamh ná d'ainm agus ríomhphost a chur ar bun:
$ git config --global user.name "Your Real Name"
$ git config --global user.email "you@email.com"
Tabhair faoi deara gur chóir gurb é user.name` d'ainm fíor, ní d'ainm GitHub. Ba chóir go mbeadh a fhios ag GitHub an ríomhphost a úsáideann tú sa réimse ``user.email`, mar úsáidfear é seo chun do thiomantas a cheangal le do chuntas GitHub.
Stóra áitiúil a bhunúLink to this heading
< https://github.com/django/django/fork>Nuair a bheidh do chuntas GitHub cruthaithe agat, leis an nick “GitHub_nick”, agus `stór Django forctha `__, cruthaigh cóip áitiúil de do fhorc:
git clone https://github.com/GitHub_nick/django.git
Cruthóidh sé seo eolaire nua “django”, ina bhfuil clón de do stór GitHub. Caithfear an chuid eile de na horduithe git ar an leathanach seo a reáchtáil laistigh den eolaire clónaithe, mar sin aistrigh air anois:
cd django
Tugfar “bunús” ar do stór GitHub i Git.
Ba chóir duit django/django a chur ar bun mar iargúlta “suas sruth” (is é sin, inis do git gurb é an stór tagartha Django foinse do fhorc de):
git remote add upstream https://github.com/django/django.git
git fetch upstream
Is féidir leat iargúlta eile a chur leis ar an gcaoi chéanna, mar shampla:
git remote add akaariai https://github.com/akaariai/django.git
Ag obair ar thicéadLink to this heading
Agus tú ag obair ar thicéad, cruthaigh brainse nua don obair, agus bunaigh an obair sin ar upstream/main`:
git checkout -b ticket_xxxxx upstream/main
Cruthaíonn an bratach -b brainse nua duit go háitiúil. Ná bíodh aon leisce ort brainsí nua a chruthú fiú do na rudaí is lú - sin a bhfuil siad ann.
Dá mbeadh tú ag obair ina ionad sin le haghaidh socrú ar an mbrainse 1.4, déanfá:
git checkout -b ticket_xxxxx_1_4 upstream/stable/1.4.x
Glac leis go ndéantar an obair ar an mbrainse ticket_xxxxx. Déan roinnt athruithe agus déan iad a dhéanamh:
git commit
Agus an teachtaireacht gealltanais á scríobh, lean na treoirlínte commit message chun obair an chumaisc a éascú. Mura bhfuil tú compordach leis an mBéarla, déan iarracht ar a laghad cur síos beacht a dhéanamh ar a ndéanann an tiomantas.
Más gá duit obair bhreise a dhéanamh ar do bhrainse, déan tiomantas chomh minic agus is gá:
git commit -m 'Added two more tests for edge cases'
Obair fhoilsitheLink to this heading
Is féidir leat do chuid oibre a fhoilsiú ar GitHub trí rith:
git push origin ticket_xxxxx
Nuair a théann tú chuig do leathanach GitHub, tabharfaidh tú faoi deara go bhfuil brainse nua cruthaithe.
Má tá tú ag obair ar thicéad Trac, ba chóir duit a lua sa ticéad go bhfuil d'obair ar fáil ó bhrainse ticket_xxxxx de do repo GitHub. Cuir nasc chuig do bhrainse san áireamh.
Tabhair faoi deara go dtugtar "brainse ábhar" ar an mbrainse thuas i parlance Git. Tá cead agat stair an bhrainse seo a athscríobh, trí git rebase a úsáid mar shampla. Níor cheart do dhaoine eile a gcuid oibre a bhunú ar bhrainse den sórt sin, mar go n-éireodh a gclón truaillithe nuair a dhéanann tú eagarthóireacht ar ghealltanais.
Tá “brainsí poiblí” ann freisin. Is brainsí iad seo atá ceaptha do dhaoine eile a fhorc, mar sin níor chóir go n-athródh stair na mbrainsí seo riamh. Is iad samplaí maithe de bhrainsí poiblí na brainsí main agus stable/A.B.X` sa stór django/django`.
Nuair a cheapann tú go bhfuil do chuid oibre réidh le tarraingt isteach i Django, ba cheart duit iarratas tarraingthe a chruthú ag GitHub. Ciallaíonn iarratas tarraingthe maith:
<coding-style>geallann sé le hathrú loighciúil amháin i ngach ceann, ag leanúint na:doc: `stíl chódú `,
teachtaireachtaí dea-fhoirmithe do gach tiomantas: líne achoimre agus ansin míreanna atá fillte ag 72 carachtar ina dhiaidh sin - féach in:ref: `treoirlínte tiomanta <committing-guidelines>`le haghaidh tuilleadh sonraí,
doiciméadú agus tástálacha, más gá -- bíonn tástálacha de dhíth i gcónaí, ach amháin má dhéantar athruithe ar dhoiciméid.
Caithfidh an seomra tástála pas a fháil agus ní mór na doiciméid a thógáil gan rabhadh.
Nuair a bheidh d'iarratas tarraingthe cruthaithe agat, ba cheart duit trácht a chur leis sa ticéad Trac gaolmhar ag míniú cad atá déanta agat. Go háirithe, ba chóir duit an timpeallacht inar reáchtáil tú na tástálacha a thabhairt faoi deara, mar shampla: “téann gach tástáil faoi SQLite agus MySQL”.
Níl ach dhá stát ag iarratais tarraingthe ag GitHub: oscailte agus dúnta. Níl ach dhá rogha ag an gcumasc a dhéileálfaidh le d'iarratas tarraingthe: é a chumasc nó é a dhúnadh. Ar an gcúis seo, níl sé úsáideach iarratas tarraingthe a dhéanamh go dtí go mbeidh an cód réidh le cumasc - nó gar go leor go gcríochnóidh cumaisc é féin.
Brainsí a athbhunúLink to this heading
Sa sampla thuas, chruthaigh tú dhá thiomantas, an tiomantas “Ticéad Seasta xxxxx” agus “Cuireadh dhá thástáil eile leis”.
Níl muid ag iarraidh stair iomlán do phróisis oibre a bheith agat i do stór. Bheadh torann neamhchabhrach do thiomantas “Cuireadh dhá thástáil eile leis”. Ina áit sin, b'fhearr linn ach tiomantas amháin a mbeadh do chuid oibre go léir ann.
Chun stair do bhrainse a athoibriú is féidir leat na gealltanais a scuabadh i gceann amháin trí athbhunú idirghníomhach a úsáid:
git rebase -i HEAD~2
Is gearrthóg é an HEAD ~ 2 thuas do dhá thiomantas is déanaí. Osclóidh an t-ordú thuas eagarthóir a thaispeánann an dá thiomantas, réamhshocraithe leis an bhfocal “pioc”.
Athraigh “pioc” ar an dara líne go “squash” ina ionad sin. Coinneoidh sé seo an chéad tiomantas, agus cuirfidh sé an dara tiomantas isteach sa chéad cheann. Sábháil agus scor an t-eagarthóir. Ba chóir go n-osclaíonn an dara fuinneog eagarthóra, ionas gur féidir leat an teachtaireacht tiomanta don tiomantas a athfhocal anois go bhfuil an dá chéim ann.
Is féidir leat an rogha “eagarthóireacht” a úsáid i rebase freisin. Ar an mbealach seo is féidir leat tiomantas amháin a athrú, mar shampla chun clóscríobh a shocrú i docstring:
git rebase -i HEAD~3
# Choose edit, pick, pick for the commits
# Now you are able to rework the commit (use git add normally to add changes)
# When finished, commit work with "--amend" and continue
git commit --amend
# Reword the commit message if needed
git rebase --continue
# The second and third commits should be applied.
Má tá do bhrainse ábhar foilsithe cheana féin ag GitHub, mar shampla má tá mionathruithe á dhéanamh agat chun athbhreithniú a chur san áireamh, beidh ort na hathruithe a bhrú go foréigeach:
git push -f origin ticket_xxxxx
Tabhair faoi deara go n-athscríobfaidh sé seo stair ticket_xxxxx - má sheiceálann tú na hashes tiomanta roimh agus tar éis na hoibríochta ag GitHub tabharfaidh tú faoi deara nach n-oireann na hashes tiomanta níos mó. Tá sé seo inghlactha, toisc gur brainse ábhar í an bhrainse, agus níor cheart d'aon duine a bheith ag bhunú a gcuid oibre air.
Tar éis athrú suas sruthLink to this heading
Nuair a athraíonn suas sruth (django/django), ba cheart duit do chuid oibre a athbhunú. Chun seo a dhéanamh, bain úsáid as:
git fetch upstream
git rebase upstream/main
Déantar an obair a athbhunú go huathoibríoch ag baint úsáide as an mbrainse a rinne tú air, sa chás samplach ag baint úsáide as upstream/main`.
Baineann an t-ordú rebase do ghealltanais áitiúla go léir go sealadach, cuireann an gealltanas in aghaidh an tsrutha i bhfeidhm, agus ansin cuireann do ghealltanas áitiúil i bhfeidhm arís ar an obair.
Má tá coinbhleachtaí cumaisc ann, beidh ort iad a réiteach agus ansin git rebase --continue a úsáid. Ag pointe ar bith is féidir leat git rebase --abort a úsáid chun filleadh ar an stát bunaidh.
Tabhair faoi deara go dteastaíonn uait* a athbhunú* ar an sruth, ne*cumasch* an suas sruth.
Is é an chúis atá leis seo ná go mbeidh do thiomantas i gcónaí* ar bharr* obair an tsraith, ne*measctha la* na hathruithe ar an sruth suas. Ar an mbealach seo ní bheidh ach gealltanais a bhaineann lena ábhar i do bhrainse, rud a fhágann go bhfuil sé níos éasca squashing.
Tar éis léirmheasLink to this heading
Tá sé neamhghnách aon mhéid cód neamh-thráthúil a fháil isteach i gcroílár gan athruithe a iarrann athbhreithnithe. Sa chás seo, is minic gur smaoineamh maith é na hathruithe a chur leis mar thiomantas incriminteach amháin do do chuid oibre. Ligeann sé seo don athbhreithneoir na hathruithe atá déanta agat a sheiceáil go héasca.
Sa chás seo, déan na hathruithe a theastaíonn ón athbhreithneoir. Tiomantas chomh minic agus is gá. Sula bhfoilsíonn na hathruithe, déan do chuid oibre a athbhun Má chuir tú dhá thiomantas leis, rith tú:
git rebase -i HEAD~2
Squash an dara tiomantas isteach sa chéad cheann. Scríobh teachtaireacht tiomanta ar na línte de:
Made changes asked in review by <reviewer>
- Fixed whitespace errors in foobar
- Reworded the docstring of bar()
Faoi dheireadh, brúigh do chuid oibre ar ais chuig do stór GitHub. Ós rud é nár chuir tú teagmháil leis na gealltanais phoiblí le linn an athbhunaithe, níor cheart go mbeadh ort brú go foréigeantach:
git push origin ticket_xxxxx
Ba chóir go mbeadh an tiomantas nua i d'iarratas tarraingthe anois freisin.
Tabhair faoi deara gur dócha go gcuirfidh an cumasc an gealltanas athbhreithnithe isteach sa ghealltanas roimhe seo agus an cód á ghealladh.
Ag obair ar phaisteLink to this heading
Ceann de na bealaí is féidir le forbróirí cur le Django ná trí phaistí a athbhreithniú. De ghnáth beidh na paistí sin ann mar iarratais tarraingthe ar GitHub agus is féidir iad a chomhtháthú go héasca i do stór áitiúil:
git checkout -b pull_xxxxx upstream/main
curl -L https://github.com/django/django/pull/xxxxx.patch | git am
Cruthóidh sé seo brainse nua agus ansin cuirfidh sé na hathruithe ón iarratas tarraingthe i bhfeidhm air. Ag an bpointe seo is féidir leat na tástálacha a reáchtáil nó aon rud eile a dhéanamh a chaithfidh tú a dhéanamh chun cáilíocht an phaiste a imscrúdú.
<handling-pull-requests>Le haghaidh tuilleadh sonraí maidir le hoibriú le hiarratais tarraingthe féach in:ref: `treoirlínte maidir le cumaisc `.
AchoimreLink to this heading
Oibrigh ar GitHub más féidir leat.
Fógraigh d'obair ar thicéad Trac trí nasc a dhéanamh le do bhrainse GitHub.
Nuair a bhíonn rud éigin réidh agat, déan iarratas tarraingthe.
Déan d'iarratais tarraingthe chomh maith agus is féidir leat.
Agus tú ag déanamh ceartúcháin ar do chuid oibre, bain úsáid as
git rebase -ichun na gealltanais a scuabadh.Nuair a bheidh athraithe suas sruth, déan
git fetch upstream; git rebase.