Git Kòmandman Chak tèsteur ta dwe konnen

Pòs sa a se yon Fèy Tronpe Git ak kòmandman ki pi komen Git ou ap gen chans pou itilize sou yon baz chak jou.

Si ou se yon tèsteur teknik k ap travay ansanm ak devlopè, ou ta dwe abitye avèk kòmandman debaz Git yo.

Pòs sa a gen ase konesans Git fè ou ale sou yon baz jou an jou kòm yon QA.


Si ou pa gen Git enstale sou machin ou, ou ka swiv etap sa yo nan Ki jan yo Enstale Git sou Mac ak jenere kle SSH .



Premye Enstalasyon Git

Inisyalize yon repo

Kreye yon repo git vid oswa re-inisyalize yon yon sèl ki deja egziste


$ git init

Klone yon repo

Klone repo foo a nan yon nouvo anyè ki rele foo:

$ git clone https://github.com//foo.git foo

Git Branch

Ki jan yo kreye yon nouvo branch nan Git

Lè ou vle travay sou yon karakteristik nouvo, ou tipikman kreye yon nouvo branch nan Git. Kòm sa yo, ou jeneralman vle rete koupe branch lan mèt ak travay sou branch karakteristik pwòp ou a pou ke mèt se toujou pwòp epi ou ka kreye nouvo branch soti nan li.

Pou kreye yon nouvo branch itilize:

$ git checkout -b

Ki jan nan lis Branch nan Git

Si ou vle konnen ki branch ki disponib nan anyè k ap travay ou, lè sa a sèvi ak:


$ git branch

Egzanp pwodiksyon:

develop my_feature master

Kouman chanje Branch nan Git

Lè ou kreye yon nouvo branch Lè sa a, Git otomatikman chanje nan nouvo branch lan.

Si ou gen branch miltip, Lè sa a, ou ka fasilman chanje ant branch ak kesye git:

$ git checkout master $ git checkout develop $ git checkout my_feature

Ki jan yo efase branch nan Git

Pou efase yon branch lokal:


$ git branch -d

Sèvi ak -D drapo opsyon fòse li.

Pou efase yon branch aleka sou orijin:

$ git push origin :

Ki gen rapò:

  • Kouman enstale git ak jenere kle SSH sou Mac


Git Staging

Pou etap yon dosye se senpleman pou prepare li pou yon komèt. Lè ou ajoute oswa modifye kèk dosye, ou bezwen etap chanjman sa yo nan 'zòn nan staj.' Reflechi sou staging kòm yon bwat kote ou mete bagay sa yo nan anvan ou mete l anba kabann ou, kote kabann ou se yon depo nan bwat ou te deja te pouse nan.


Git Etap Files

Nan etap oswa tou senpleman ajoute dosye, ou bezwen sèvi ak git ajoute lòd. Ou ka etap dosye endividyèl:

$ git add foo.js

oswa tout dosye nan yon fwa:

$ git add .

Git Unstage Chanjman

Si ou vle retire yon dosye sèten soti nan sèn nan:

$ git reset HEAD foo.js

Oswa retire tout dosye sèn:


$ git reset HEAD .

Ou kapab tou kreye yon alyas pou yon lòd ak Lè sa a, sèvi ak li ak Git:

$ git config --global alias.unstage 'reset HEAD' $ git unstage .

Git Status

Si ou vle wè sa ki dosye yo te kreye, modifye oswa efase, estati Git pral montre w yon rapò.

$ git status

Git komèt

Li se yon bon pratik komèt souvan. Ou ka toujou kalbas desann komèt ou anvan yon pouse. Anvan ou komèt chanjman ou yo, ou bezwen etap yo.

Kòmandman an komèt mande pou yon opsyon -m ki espesifye mesaj la komèt.

Ou ka komèt chanjman ou tankou:

$ git commit -m 'Updated README'

Anile komèt

Kòmandman sa a pral defèt komèt ki pi resan ou yo epi mete chanjman sa yo tounen nan staj, kidonk, ou pa pèdi okenn travay:

$ git reset --soft HEAD~1

Pou efase konplètman komèt la epi jete nenpòt chanjman itilize:

$ git reset --hard HEAD~1

Squashing Komèt

Ann di ou gen 4 komèt, men ou pa te pouse anyen ankò epi ou vle mete tout bagay nan yon sèl komèt, Lè sa a, ou ka itilize:

$ git rebase -i HEAD~4

HEAD~4 refere a kat dènye komèt yo.

-i opsyon ouvè yon dosye tèks entèaktif.

Ou pral wè mo 'chwazi' a sou bò gòch la nan chak komèt. Kite yon sèl la nan tèt la pou kont li epi ranplase tout lòt moun yo ak 's' pou kalbas, sove epi fèmen dosye a.

Lè sa a, yon lòt fenèt entèaktif ouvè kote ou ka mete ajou mesaj komèt ou yo nan yon sèl nouvo mesaj komèt.



Git Pouse

Apre ou fin komèt chanjman ou yo, pwochen se pouse nan yon depo aleka.

Premye Pouse

Pouse yon branch lokal la pou premye fwa:

$ git push --set-upstream origin

Apre sa, Lè sa a, ou ka jis itilize

$ git push

Pouse branch lokal nan diferan branch aleka

Pou pouse yon branch lokal nan yon diferan branch aleka, ou ka itilize:

$ git push origin :

Defèt Dènye Pouse

Si ou gen defèt dènye pouse ou, ou ka itilize:

$ git reset --hard HEAD~1 && git push -f origin master

Git chache

Lè ou itilize git fetch, Git pa rantre lòt komèt yo ak branch ou ye kounye a. Sa itil sitou si ou bezwen kenbe repozitwa ou a jou, men wap travay sou yon bagay ki ka kraze si ou mete dosye ou ajou.

Pou entegre komèt yo nan branch mèt ou an, ou itilize merge.

Jwenn chanjman nan en

$ git fetch upstream

Git Rale

Rale se jis fè yon chache ki te swiv pa yon rantre. Lè ou itilize git pull, Git otomatikman rantre lòt komèt san yo pa kite ou revize yo an premye. Si ou pa byen jere branch ou yo, ou ka kouri nan konfli souvan.

Rale yon branch

Si ou gen yon branch ki rele my_feature epi ou vle rale branch sa a, ou ka itilize:

$ git pull origin/my_feature

Rale tout bagay

Oswa, si ou vle rale tout bagay ak tout lòt branch yo

$ git pull

Git Fusion ak Rebasing

Lè ou kouri git merge, branch tèt ou pral jenere yon nouvo komèt , prezève zansèt yo nan chak istwa komèt.

La depase re-ekri chanjman sa yo nan yon branch sou yon lòt san kreye yon nouvo komèt.

Rantre Branch Mèt nan Branch Karakteristik

$ git checkout my_feature $ git merge master

Oswa ak opsyon rebase, ou itilize:

$ git checkout my_feature $ git rebase master

Rantre Branch Karakteristik nan Mèt Branch

$ git checkout master $ git merge my_feature

Git kachèt

Pafwa ou fè chanjman sou yon branch, epi ou vle chanje nan yon lòt branch, men ou pa vle pèdi chanjman ou yo.

Ou ka kache chanjman ou yo. Men ki jan ou fè yon kachèt nan Git:

$ git stash

Koulye a, si ou vle dechaje chanjman sa yo epi pote yo tounen nan anyè k ap travay ou itilize:

$ git stash pop