Каманды Git, якія павінен ведаць кожны тэстар

Гэта паведамленне - падшыўка Git з найбольш распаўсюджанымі камандамі Git, якія вы, верагодна, будзеце выкарыстоўваць штодня.

Калі вы тэхнічны выпрабавальнік, які працуе разам з распрацоўшчыкамі, вы павінны быць знаёмыя з асноўнымі камандамі Git.

Гэты пост утрымлівае дастатковую колькасць ведаў Git, каб вы маглі штодзённа праводзіць кантроль якасці.


Калі вы не ўсталявалі Git на сваёй машыне, вы можаце выканаць інструкцыі ў Як усталяваць Git на Mac і стварыць ключы SSH .



Пачатковая ўстаноўка Git

Ініцыялізаваць рэпа

Стварыце пустое Git-рэпа альбо паўторна ініцыялізуйце ўжо існуючае


$ git init

Клон рэпа

Клонуйце рэпазітар foo у новы каталог пад назвай foo:



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

Git Branch

Як стварыць новую галіну ў Git

Калі вы хочаце папрацаваць над новай функцыяй, вы звычайна ствараеце новую галіну ў Git. Такім чынам, вы звычайна хочаце пазбягаць галоўнай галіны і працаваць над уласнымі галінамі функцый, каб майстар заўсёды быў чысты, і вы маглі ствараць новыя галіны з яго.

Каб стварыць новую галіну, выкарыстоўвайце:

$ git checkout -b

Як пералічыць галіны ў Git

Калі вы хочаце ведаць, якія галіны ёсць у вашым працоўным каталогу, выкарыстоўвайце:


$ git branch

Прыклад вываду:

develop my_feature master

Як пераключыць галіны ў Git

Пры стварэнні новай галіны Git аўтаматычна пераключаецца на новую галіну.

Калі ў вас некалькі аддзяленняў, вы можаце лёгка пераключацца паміж аддзяленнямі з дапамогай git checkout:

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

Як выдаліць галіны ў Git

Каб выдаліць лакальнае аддзяленне:


$ git branch -d

Выкарыстоўвайце -D варыянт сцяга, каб прымусіць яго.

Каб выдаліць аддаленую галіну па паходжанні:

$ git push origin :

Звязаныя:

  • Як усталяваць git і генераваць ключы SSH на Mac


Пастаноўка Git

Каб этап файл проста падрыхтаваць яго да фіксацыі. Калі вы дадаеце альбо змяняеце некаторыя файлы, вам трэба змяніць гэтыя змены ў 'пастановачную вобласць'. Падумайце пра пастаноўку як пра скрынку, куды вы кладзеце рэчы, перш чым засунуць яе пад ложак, дзе ваша ложак - сховішча скрынак, якія вы раней запіхвалі.


Фазы Git Stage

Для пастаноўкі альбо простага дадання файлаў трэба выкарыстоўваць каманду git add. Вы можаце арганізаваць асобныя файлы:

$ git add foo.js

альбо ўсе файлы адначасова:

$ git add .

Змены Git Unstage

Калі вы хочаце выдаліць пэўны файл са сцэны:

$ git reset HEAD foo.js

Або выдаліце ​​ўсе паэтапныя файлы:


$ git reset HEAD .

Вы таксама можаце стварыць псеўданім для каманды, а затым выкарыстоўваць яго з Git:

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

Статус Git

Калі вы хочаце ўбачыць, якія файлы былі створаны, зменены або выдалены, статус Git пакажа вам справаздачу.

$ git status

Git здзяйсняе

Гэта добрая практыка, каб часта здзяйсняць. Вы заўсёды можаце раздушыць свае здзяйсненні перад націскам. Перад тым, як унесці змены, вам трэба іх паэтапна.

Каманда фіксацыі патрабуе параметр -m, які вызначае паведамленне фіксацыі.

Вы можаце ўнесці змены, напрыклад:

$ git commit -m 'Updated README'

Скасаванне здзяйсненняў

Наступная каманда адменіць вашу апошнюю фіксацыю і ўвядзе гэтыя змены ў пастаноўку, каб вы не страцілі ніякай працы:

$ git reset --soft HEAD~1

Каб цалкам выдаліць фіксацыю і адкінуць любыя змены, выкарыстоўвайце:

$ git reset --hard HEAD~1

Здзяйсненне здушэння

Скажам, у вас ёсць 4 фіксацыі, але вы яшчэ нічога не націснулі, і вы хочаце змясціць усё ў адзін фіксат, тады вы можаце выкарыстоўваць:

$ git rebase -i HEAD~4

HEAD~4 адносіцца да апошніх чатырох здзяйсненняў.

-i Опцыя адкрывае інтэрактыўны тэкставы файл.

Вы ўбачыце слова 'выбраць' злева ад кожнай фіксацыі. Пакіньце адзін уверсе ў спакоі, а ўсе астатнія заменіце 's' для сквоша, захавайце і зачыніце файл.

Затым адкрыецца іншае інтэрактыўнае акно, дзе вы можаце абнавіць паведамленні пра здзяйсненне ў адно новае паведамленне аб здзяйсненні.



Git Push

Пасля таго, як вы ўнясіце змены, наступнае - націснуць на аддалены рэпазітар.

Першы націск

Упершыню націсніце мясцовае аддзяленне:

$ git push --set-upstream origin

Пасля гэтага вы можаце проста выкарыстоўваць

$ git push

Націсніце лакальную галіну на іншую аддаленую галіну

Каб перанесці лакальную галіну ў іншую аддаленую галіну, вы можаце выкарыстоўваць:

$ git push origin :

Адмяніць апошні націск

Калі вам трэба адмяніць апошні штуршок, вы можаце выкарыстоўваць:

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

Git Fetch

Калі вы выкарыстоўваеце git fetch, Git не аб'ядноўвае іншыя здзяйсняе іх з вашай бягучай галіной. Гэта асабліва карысна, калі вам трэба падтрымліваць рэпазітар актуальным, але вы працуеце над чымсьці, што можа сапсавацца пры абнаўленні файлаў.

Каб інтэграваць здзяйсненні ў галоўную галіну, вы выкарыстоўваеце merge.

Атрымаць змены ўверх па плыні

$ git fetch upstream

Git Pull

Выцягванне - гэта проста выбарка з наступным зліццём. Калі вы выкарыстоўваеце git pull, Git аўтаматычна аб'ядноўвае іншыя каміты, не дазваляючы вам праглядзець іх спачатку. Калі вы дрэнна кіруеце сваімі філіяламі, вы можаце часта сутыкацца з канфліктамі.

Цягнуць галінку

Калі ў вас ёсць філіял my_feature і вы хочаце выцягнуць гэтую галінку, вы можаце выкарыстоўваць:

$ git pull origin/my_feature

Цягнуць усё

Ці, калі вы хочаце выцягнуць усё і ўсе астатнія галіны

$ git pull

Зліццё і пераздача Git

Пры запуску git merge ваша галіна HEAD генеруе новы здзяйсняць , захоўваючы родапачынанне кожнай гісторыі здзяйснення.

перабраць перапісвае змены адной галіны ў другую без стварэнне новага здзяйснення.

Аб'яднаць Master Branch у Feature Branch

$ git checkout my_feature $ git merge master

Або з магчымасцю перабазіраваць, вы выкарыстоўваеце:

$ git checkout my_feature $ git rebase master

Аб'яднаць галіну функцый у галоўную галіну

$ git checkout master $ git merge my_feature

Git Stash

Часам вы ўносіце змены ў галінку і хочаце пераключыцца на іншую галіну, але не хочаце страціць змены.

Вы можаце схаваць змены. Вось як вы робіце захоўванне ў Git:

$ git stash

Цяпер, калі вы хочаце выдаліць гэтыя змены і вярнуць іх у свой працоўны каталог, выкарыстоўвайце:

$ git stash pop