Кроз ову књигу смо увели десетине Гит команди и заиста смо се трудили да их уводимо уз причу, полако додајући још команди како се прича развија. Међутим, због тога су примери употребе команди донекле разбацани по целој књизи.
У овом додатку ћемо проћи кроз све Гит команде које смо обрадили у књизи, грубо груписане по намени. О свакој команди ћемо говорити врло уопштено, па ћемо онда указати на место у књизи на којем смо је употребили.
Tip
|
Дугачке опције можете да скратите.
На пример, можете да откуцате |
Постоје две команде које се прилично често употребљавају, од првог покретања програма Гит до уобичајеног свакодневног штеловања и референцирања, config
и help
команде.
Програм Гит поседује подразумевани начин за извршавање стотина ствари. За већину њих, програму Гит можете наложити да их подразумевано обавља на другачији начин, или да поставите своје жељене поставке. У ово спада све од тога да програму Гит кажете које је ваше име до одређених боја које желите на терминалу или текст едитора који желите да користите. Постоји неколико фајлова које из којих ће ова команда да чита и у њих уписује, тако да вредности можете поставити глобално или само за одређене репозиторијуме.
Команда git config
је коришћена у скоро сваком поглављу књиге.
У ch01-getting-started.asc смо је користили да наведемо своје име, имејл адресу и жељени едитор пре него што смо уопште и почели да користимо програм Гит.
У ch02-git-basics-chapter.asc смо показали како бисте могли да је употребите за креирање пречица команди које се развијају у дугачке низове опција, тако да не морате сваки пут да их куцате.
У ch03-git-branching.asc смо је користили да --rebase
буде подразумевана опција када извршите git pull
.
У ch07-git-tools.asc смо је употребили да поставимо подразумевано складиште за ваше HTTP лозинке.
у ch08-customizing-git.asc смо показали како да поставите запрљане и чисте филтере над садржајем који излази и који улази у Гит.
Коначно, у суштини је комплетан садржај ch08-customizing-git.asc посвећен овој команди.
Пратећа упутства за конфигурацију су у ch01-getting-started.asc, многи едитори могу да се поставе на следећи начин:
core.editor
конфигурационих команди
Едитор | Конфигурациона команда |
---|---|
Atom |
|
BBEdit (Мек, са алатима из команде линије) |
|
Emacs |
|
Gedit (Линукс) |
|
Gvim (Виндоуз 64-битни) |
|
Kate (Линукс) |
|
nano |
|
Notepad (Виндоуз 64-битни) |
|
Notepad++ (Виндоуз 64-битни) |
|
Scratch (Линукс) |
|
Sublime Text (мекОС) |
|
Sublime Text (Виндоуз 64-битни) |
|
TextEdit (мекОС) |
|
Textmate |
|
Textpad (Виндоуз 64-битни) |
|
UltraEdit (Виндоуз 64-битни) |
|
Vim |
|
Visual Studio Code |
|
VSCodium (Слободни/Libre Open Source Software бинарни фајлови VSCode) |
|
WordPad |
|
Xi |
|
Note
|
Ако имате 32-битни едитор на Виндоуз 64-битном систему, програм ће бити инсталиран у |
Команда git help
се користи за приказ комплетне документације која се испоручује уз програм Гит о било којој команди.
Пошто у овом додатку излажемо површни преглед већине популарнијих команди, потпуни списак свих могућих опција и заставица за сваку команду увек можете видети ако извршите git help <команда>
.
Команду git help
смо увели у ch01-getting-started.asc и показали вам како да је користите да добијете више информација о git shell
у ch04-git-on-the-server.asc.
Постоје два начина да дођете до Гит репозиторијума. Један је да га копирате из постојећег репозиторијума на мрежи или на неком другом месту, а други је да креирате нови у неком постојећем директоријуму.
Када желите да неки директоријум претворите у нови Гит репозиторијум, тако да можете почети да контролишете његове верзије, једноставно можете да извршите git init
.
Ово прво уводимо у ch02-git-basics-chapter.asc, где показујемо креирање потпуно новог репозиторијума са којим почињете да радите.
Укратко причамо о томе како можете да промените подразумевано име гране из „master” у ch03-git-branching.asc.
Ову команду користимо у ch04-git-on-the-server.asc за креирање празног огољеног репозиторијума за сервер.
Коначно, у ch10-git-internals.asc пролазимо кроз неке од детаља о ономе шта се заиста догађа у позадини.
Команда git clone
је у суштини нешто као омотач око неколико других команди.
Она креира нови директоријум, улази у њега и извршава git init
којом прави празан Гит репозиторијум, додаје удаљени репозиторијум (git remote add
) са URL адресе коју јој проследите (подразумевано под именом origin
), извршава git fetch
са тог удаљеног репозиторијума и онда одјављује најновији комит у ваш радни директоријум командом git checkout
.
Команда git clone
се у књизи користи на доста места, али ћемо навести неколико интересантних места.
У суштини је уведена и објашњена у ch02-git-basics-chapter.asc, где пролазимо кроз неколико примера.
У ch04-git-on-the-server.asc приказујемо употребу опције --bare
којом се креира копија Гит репозиторијума без радног директоријума.
У ch07-git-tools.asc је користимо да распакујемо спаковани Гит репозиторијум.
Коначно, у ch07-git-tools.asc учимо о --recurse-submodules
опцији којом је клонирање репозиторијума са подмодулима мало једноставније.
Мада се користи на многим другим местима у књизи, ово су она донекле јединствена или она на којима се њена потреба донекле разликује у односу на остала места.
За основни процес рада у којем се садржај поставља на стејџ и комитује у историју, постоји само неколико основних команди.
Команда git add
поставља садржај из радног директоријума на стејџ (или „индекс”) за наредни комит.
Када се изврши команда git commit
, она подразумевано гледа у овај стејџ, тако да се git add
користи да прецизно обликује оно што желите да да постане део снимка наредног комита.
Ова команда је изузетно важна у програму Гит и помиње се на доста места у књизи. Брзо ћемо проћи кроз неке јединствене употребе које можете да пронађете.
git add
најпре уводимо и детаљно објашњавамо у ch02-git-basics-chapter.asc.
Помињемо како се користи за разрешавање конфликата при стајању у ch03-git-branching.asc.
Показујемо како се користи за интерактивно постављање делова измењеног фајла на стејџ у ch07-git-tools.asc.
Коначно, емулирамо је на ниском нивоу у ch10-git-internals.asc, тако да можете да стекнете идеју шта она обавља у позадини.
Команда git status
ће вам приказати различита стања фајлова у радном директоријуму и на стејџу.
Који фајлови су измењени и нису на стејџу, који се налазе на стејџу али још увек нису комитовани.
У свом уобичајеном облику, она ће такође да покаже и неке основне савете како да померате фајлове између ових етапа.
status
најпре описујемо у ch02-git-basics-chapter.asc, и у њеном основном и у поједностављеном облику.
Мада је користимо по целој књизи, овде је показано скоро све што можете да урадите командом git status
.
Команда git diff
се користи када желите да видите разлике између било која два стабла.
То би могла бити разлика између радног окружења и стејџа (git diff
само по себи), између стејџа и вашег последњег комита (git diff --staged
), или између два комита (git diff master branchB
).
Најпре представљамо основне употребе команде git diff
у ch02-git-basics-chapter.asc, где показујемо како да погледате које измене се налазе на стејџу, а које још увек нису тамо.
Користимо је у ch05-distributed-git.asc да опцијом --check
пронађемо евентуалне проблеме са празним простором пре него што комитујемо.
У ch05-distributed-git.asc сазнајемо како да ефективније погледамо разлике између две гране са git diff A…B
синтаксом.
Користимо је да филтрирамо разлике у празном простору са -b
и сазнајемо начин како да упоредимо различите етапе фајлова у конфликту са --theirs
, --ours
и --base
у ch07-git-tools.asc.
Коначно, користимо је да ефективно упоредимо измене у подмодулу са --submodule
у ch07-git-tools.asc.
Команда git difftool
једноставно покреће спољни алат за прилаз разлика између два стабла у случају када вам је потребно нешто више од онога што може уграђена git diff
команда.
Укратко је помињемо у ch02-git-basics-chapter.asc.
Команда git commit
узима садржаје свих фајлова који су са git add
постављени на стејџ и прави трајни снимак у бази података, па затим помера показивач текуће гране навише да показује на њега.
Основе комитовања најпре показујемо у ch02-git-basics-chapter.asc.
Ту такође показујемо како се користи заставица -a
којом се у свакодневним процесима рада прескаче git add
корак и како се користи заставица -m
којом се уместо покретања едитора директно прослеђује комит порука.
У ch02-git-basics-chapter.asc објашњавамо опцију --amend
којом се врши измена најновијег комита.
У ch03-git-branching.asc улазимо у детаље онога што ради git commit
, као и разлога зашто то ради баш на тај начин.
Сазнали смо како да криптографски потпишемо комитове помоћу заставице -S
у ch07-git-tools.asc.
Коначно, представљамо шта команда git commit
ради у позадини и како је заиста имплементирана у ch10-git-internals.asc.
Команда git reset
се првенствено користи за поништавање ствари, што можете и да погодите када видите глагол.
Она се помера око HEAD
показивача и необавезно мења index
или стејџ, а такође необавезно може и да измени радни директоријум ако употребите --hard
.
Ако се неправилно употреби, ова последња опција може да проузрокује губитак рада, тако да морате добро да је разумете пре него што почнете да је користите.
Најпре ефективно покривамо најједноставнији случај употребе команде git reset
у ch02-git-basics-chapter.asc, где је користимо да са стејџа уклонимо фајл над којим смо извршили git add
.
Затим је у ch07-git-tools.asc детаљно представљамо, комплетно поглавље је посвећено објашњењу ове команде.
У ch07-git-tools.asc користимо git reset --hard
да прекинемо спајање, где такође користимо и git merge --abort
, што донекле представља омотач око git reset
команде.
git rm
команда се користи за уклањање фајлова са стејџа и из радног директоријума програма Гит.
Слична је команди git add
у томе што на стејџ за наредни комит поставља акцију уклањања фајла.
Команду git rm
детаљно представљамо у ch02-git-basics-chapter.asc, укључујући рекурзивно уклањање фајлова и уклањање само са стејџа, уз остављање у радном директоријуму са --cached
.
Једина различита употреба команде git rm
у књизи је у ch10-git-internals.asc где укратко употребљавамо и објашњавамо --ignore-unmatch
када се извршава git filter-branch
, што једноставно не изазива грешку када фајл који покушавамо да уклонимо не постоји.
Ово може бити корисно када се пишу скрипте.
Команда git mv
је мала згодна команда за померање фајла па покретање git add
над новим фајлом и git rm
над старим фајлом.
Само је укратко помињемо у ch02-git-basics-chapter.asc.
Команда git clean
се користи за уклањање нежељених фајлова из радног директоријума.
То може да укључи уклањање привремених артефакта изградње или фајлова конфликта при спајању.
Доста опција и сценарија у којима би могли да употребите команду за чишћење покривамо у ch07-git-tools.asc.
Постоји само неколико команди које у програму Гит имплементирају већину функционалности гранања и спајања.
Команда git branch
је уствари нека врста алата за управљање гранама.
Може да вам испише постојеће гране, креира нову грану, обрише гране и промени им име.
Већи део ch03-git-branching.asc је посвећен команди branch
која се користи кроз цело поглавље.
Најпре је уводимо у ch03-git-branching.asc и кроз већину њених осталих могућности (испис и брисање) пролазимо у ch03-git-branching.asc.
У ch03-git-branching.asc користимо опцију git branch -u
да поставимо грану за праћење.
Коначно, у ch10-git-internals.asc прелазимо нешто од онога што ова команда обавља у позадини.
Команда git checkout
се користи за промену текуће гране и одјављивање садржаја у радни директоријум.
Први пут се сусрећемо са овом командом у ch03-git-branching.asc заједно уз git branch
команду.
Сазнајемо како да је употребимо да започнемо праћење гране заставицом --track
у ch03-git-branching.asc.
Користимо је да поново уведемо конфликте фајлова са --conflict=diff3
у ch07-git-tools.asc.
Улазимо у детаље њене везе са git reset
у ch07-git-tools.asc.
Коначно, приказујемо неке детаље имплементације у ch10-git-internals.asc.
Алат git merge
се користи за спајање једне или више грана у грану коју сте одјавили.
Затим ће померити унапред текућу грану на резултат спајања.
Команда git merge
је први пут уведена у ch03-git-branching.asc.
Мада се користи на многим местима у књизи, постоји мало варијација merge
команде — углавном само git merge <грана>
уз име једне гране у коју желите да спојите.
Показали смо како да се уради спљескано спајање (када програм Гит спаја рад али се претвара као да је то нови комит и не бележи историју гране коју спајате) на самом крају ch05-distributed-git.asc.
У ch07-git-tools.asc смо доста говорили о процесу спајања и самој команди, укључујући команду -Xignore-space-change
и --abort
заставицу која прекида проблематично спајање.
Научили смо како да проверимо потписе пре спајања у случају да ваш пројекат користи GPG потписивање у ch07-git-tools.asc.
Коначно, научили смо о спајању подстабала у ch07-git-tools.asc.
Команда git mergetool
просто покреће спољни помоћник за спајање у случају да имате проблема са спајањем у програму Гит.
Укратко је помињемо у ch03-git-branching.asc, а детаљно објашњавамо како да имплементирате сопствени спољни алат за спајање у ch08-customizing-git.asc.
Команда git log
се користи да прикаже забележену историју пројекта до које може да се дође када се из последњег комит снимка крене уназад.
Подразумевано ће да прикаже само историју гране на којој се тренутно налазите, али јој можете проследити различиту, или чак и више глава или грана из којих треба да крене у обилазак.
Такође се често користи за приказ разлика између две или више грана на нивоу комита.
Ова команда се користи у скоро сваком поглављу књиге да покаже историју пројекта.
Команду уводимо и донекле детаљно представљамо у ch02-git-basics-chapter.asc.
Ту објашњавамо опције -p
и --stat
како би стекли идеју шта је увео сваки комит, затим опције --pretty
и --oneline
за концизнији приказ историје, уз нешто једноставних опција за филтрирање по датуму и аутору.
У ch03-git-branching.asc је користимо уз опцију --decorate
да се једноставно графички прикаже где се налазе показивачи наше гране, а користимо и опцију --graph
да видимо како изгледају историје које се разилазе.
У ch05-distributed-git.asc и ch07-git-tools.asc објашњавамо гранаA..гранаБ
синтаксу која се користи уз команду git log
за приказ комитова који су у грани јединствени релативно у односу на неку другу грану.
У ch07-git-tools.asc ово приказујемо прилично детаљно.
У ch07-git-tools.asc и ch07-git-tools.asc приказујемо гранаA…гранаБ
формат и --left-right
синтаксу да видимо шта се налази на једној грани или на другој, али не на обе.
У ch07-git-tools.asc такође показујемо како да се опција --merge
користи као помоћ код дибаговања конфликта при спајању, као и употребу опције --cc
за преглед конфликата комитова спајања у историји.
У ch07-git-tools.asc користимо опцију -g
за преглед Гит reflog кроз овај алат, уместо да вршимо обилазак гране.
У ch07-git-tools.asc приказујемо употребу опција -S
и -L
за обављање прилично софистицираних претрага нечега што се историјски десило у коду, као што је праћење историје неке функције.
У ch07-git-tools.asc видимо како се користи --show-signature
за додавање валидационог стринга у сваки комит излаза git log
команде у зависности од тога да ли је комит био исправно потписан или не.
git stash
команда се користи за привремено чување рада који није комитован како би се очистио радни директоријум без потребе да се комитује незавршени посао на грани.
Она је у суштини потпуно представљена у ch07-git-tools.asc.
Команда git tag
се користи за постављање сталног маркера на одређено место у историји кода.
У општем случају се ово користи за ствари као што су издања.
Ова команда је представљена и детаљно објашњена у ch02-git-basics-chapter.asc, а у пракси је користимо у ch05-distributed-git.asc.
Такође смо у ch07-git-tools.asc показали како да се креира GPG потписана ознака заставицом -s
и провера ознаке заставицом -v
.
Нема много команди у програму Гит које приступају мрежи, скоро све команде оперишу над локалном базом података. Када сте спремни да поделите свој рад или да повучете измене са неког другог места, постоји неколико команди које раде са удаљеним репозиторијумима.
Команда git fetch
комуницира са удаљеним репозиторијумом, преузима све информације из тог репозиторијума које се не налазе у вашем тренутном, па их смешта у локалну базу података.
Са овом командом се први пут сусрећемо у ch02-git-basics-chapter.asc, па настављамо са приказом примера њене употребе у ch03-git-branching.asc.
Такође је користимо у неколико примера у ch05-distributed-git.asc.
Користимо је да преузмемо једну одређену референцу која се налази ван подразумеваног простора у ch06-github.asc, а у ch07-git-tools.asc видимо како да преузмемо из запакованог репозиторијума.
Подешавамо детаљно прилагођене рефспекове да git fetch
уради нешто мало другачије од онога што подразумевано ради у ch10-git-internals.asc.
Команда git pull
је у суштини комбинација команди git fetch
и git merge
, којом програм Гит преузме са удаљеног репозиторијума који наведете и онда непосредно након тога покуша да изврши спајање у грану на којој се тренутно налазите.
Укратко смо је представили у ch02-git-basics-chapter.asc и показали како да видите шта ће спојити ако је покренете у ch02-git-basics-chapter.asc.
Такође показујемо како да је употребите као помоћ при тешкоћама ребазирања уch03-git-branching.asc.
У ch05-distributed-git.asc показујемо како да је користите са URL адресом да једнократно повучете измене.
Коначно, у ch07-git-tools.asc укратко помињемо да можете употребити опцију --verify-signatures
ове команде да проверите да ли су комитови које повлачите GPG потписани.
Команда git push
се користи за комуникацију са другим репозиторијумом, израчунавање шта ваш репозиторијум има што удаљени нема, па затим гура разлику у други репозиторијум.
Она захтева да имате право уписа у удаљени репозиторијум, па је логично да се аутентификује на неки начин.
Команду git push
прво представљамо у ch02-git-basics-chapter.asc.
Ту обрађујемо основе гурања гране на удаљени репозиторијум.
У ch03-git-branching.asc идемо мало детаљније у гурање одређених грана, а у ch03-git-branching.asc показујемо како да поставите гране за праћење на које се аутоматски гура.
У ch03-git-branching.asc користимо заставицу --delete
да обришемо грану на серверу са git push
.
Кроз ch05-distributed-git.asc дајемо неколико примера употребе git push
за дељење рада на гранама кроз више удаљених репозиторијума.
Начин употребе ове команде за дељење ознака које сте направили опцијом --tags
показујемо у ch02-git-basics-chapter.asc.
У ch07-git-tools.asc користимо опцију --recurse-submodules
да проверимо да ли је сав рад из наших подмодула објављен пре него што гурамо на суперпројекат, што је заиста корисно када се користе подмодули.
У ch08-customizing-git.asc укратко причамо о pre-push
куки, која представља скрипту коју постављамо да се изврши пре него што се заврши гурање и која проверава да ли је дозвољено да се обави гурање.
Коначно, у ch10-git-internals.asc причамо о гурању са потпуним рефспеком уместо уопштених пречица које се обично користе. Ово вам помаже да будете потпуно одређени у вези рада који желите да поделите.
Команда git remote
је алат за управљање вашом колекцијом удаљених репозиторијума.
Омогућава вам да дугачке URL адресе сачувате као кратке ручке, као што је „origin” тако да не морате стално да их уносите.
Можете да их имате неколико и команда git remote
се користи да их за додате, измените и обришете.
Ова команда је детаљно представљена у ch02-git-basics-chapter.asc, укључујући приказ, додавање, уклањање и измену имена.
Такође се користи се и у скоро сваком наредном поглављу књиге, али увек у стандардном git remote add <име> <url>
формату.
Команда git archive
се користи за креирање фајла архиве одређеног снимка пројекта.
У ch05-distributed-git.asc команду git archive
користимо да направимо tarball архиву пројекта коју можемо да делимо.
Команда git submodule
се користи за управљање спољним репозиторијумима унутар обичних репозиторијума.
Ово би могло да послужи за библиотеке или остале врсте дељених ресурса.
Команда submodule
има неколико подкоманди (add
, update
, sync
, итд.) којима се управља овим ресурсима.
Ова команда се помиње само у ch07-git-tools.asc и ту је детаљно обрађена.
Команда git show
може да прикаже Гит објекат на једноставан начин лако читљив људима.
Ову команду ћете углавном користити да погледате информације о ознаци или комиту.
По први пут је користимо у ch02-git-basics-chapter.asc да нам прикаже информације о прибележеним ознакама.
Касније је поприлично користимо у ch07-git-tools.asc за приказ комитова које разрешавају разни начини избора ревизија.
Једна од интересантнијих ствари које радимо са git show
је у ch07-git-tools.asc где издвајамо садржај одређеног фајла из различитих етапа за време конфликта при спајању.
Команда git shortlog
се користи за резимирање излаза команде git log
.
Она ће прихватити многе опције исте као и команда git log
али ће уместо да прикаже све комитове, приказати сажетак комитова груписан по ауторима.
У ch05-distributed-git.asc смо показали како да је употребите да креирате фин лог измена.
Команда git describe
се користи да узме све што разрешава у комит и креира стринг који је донекле читљив људима и који се неће изменити.
То је начин да се добије опис комита који је једнозначан као и SHA-1 хеш комита, али лакше разумљив.
git describe
користимо у ch05-distributed-git.asc и ch05-distributed-git.asc да добијемо стринг којим након тога именујемо фајл издања.
Програм Гит поседује неколико команди које се користе као помоћ при отклањању грешака у коду. То иде од одређивања места на којем је нешто уведено, до одређивања онога ко је то увео.
Алат git bisect
не невероватно користан алат за исправљање грешака који се користи да се пронађе одређени комит који је први увео бак или проблем извршавањем аутоматизоване бинарне претраге.
У потпуности је објашњен у ch07-git-tools.asc и помиње се само у том одељку.
Команда git blame
означава линије било ког фајла информацијом који комит је последњи унео измену у сваку од линија фајла, као и особу која је направила тај комит.
Ово помаже да се открије особа која треба да пита за више информација у вези одређеног дела кода.
Ово је објашњено у ch07-git-tools.asc и помиње се само у том одељку.
Команда git grep
може да вам помогне да пронађете било који стринг или регуларни израз у било ком од фајлова вашег изворног кода, чак и у старијим верзијама пројекта.
Објашњена је у ch07-git-tools.asc и помиње се само у том одељку.
Неколико команди програма Гит је фокусирано на концепт да се комитови посматрају у светлу измена које уводе, као да је низ комитова низ закрпа. Те команде вам помажу да гранама управљате на овај начин.
Команда git cherry-pick
се користи да се одабере измена коју је увео један Гит комит и да се покуша њено поновно увођење на грану на којој се тренутно налазите.
Ово може бити корисно да се из гране узме само један или два комита појединачно, јер се спајањем гране узимају све измене.
Одабир измена (cherry picking) је описан и показан у ch05-distributed-git.asc.
Команда git rebase
је у основи аутоматизована команда cherry-pick
.
Она одређује низ комитова па их затим одабира један по један и у истом редоследу их примењује не неком другом месту.
Ребазирање је детаљно обрађено у ch03-git-branching.asc, укључујући и расправу о проблемима у сарадњи када се примени ребазирање грана које су већ јавне.
Ми је у ch07-git-tools.asc користимо у вежби током примера поделе историје у два одвојена репозиторијума, користећи и заставицу --onto
.
У ch07-git-tools.asc показујемо наилазак на конфликт при спајању током ребазирања.
Такође је користимо у ch07-git-tools.asc за режим интерактивног скриптинга са опцијом -i
.
Команда git revert
је у суштини обрнута команда git cherry-pick
.
Она креира нови комит који примењује тачно супротно од измене уведене комитом који циљате, што га ефективно поништава.
Користимо је ch07-git-tools.asc за поништавање комита спајања.
Многи Гит пројекти, укључујући и сам Гит, се у потпуности одржавају путем мејлинг листи. У програм Git је уграђен већи број алата који олакшавају тај процес, од генерисања закрпа које лако можете да пошаљете имејлом до примене тих закрпа из имејл сандучета.
Команда git apply
примењује закрпу коју је креирала команда git diff
или чак GNU diff команда.
То слично ономе што би могла да уради команда patch
уз неколико мањих разлика.
У ch05-distributed-git.asc приказујемо како се користи као и околности у којима би могли да је употребите.
Команда git am
се користи да примени закрпе из долазног имејл сандучета, тачније оног форматираног као mbox.
Ово је корисно да се путем имејла приме закрпе и да се једноставно примене на пројекат.
Употребу и процес рада око git am
команде смо показали у ch05-distributed-git.asc укључујући и употребу опција --resolved
, -i
и -3
.
Такође постоји и већи број кука које можете користити као помоћ у процесу рада везаног за команду git am
и све оне су приказане у ch08-customizing-git.asc.
Такође је у ch06-github.asc користимо да се примени закрпа са изменама форматираним као GitHub захтев за повлачење.
Команда git format-patch
се користи да генерише низ закрпа у mbox формату које у исправном облику можете да пошаљете на мејлинг листу.
У ch05-distributed-git.asc прелазимо пример давања доприноса пројекту коришћењем git format-patch
алата.
Команда git imap-send
шаље серверу поштанско сандуче које је генерисала команда git format-patch
у IMAP директоријум незавршених порука.
У ch05-distributed-git.asc пролазимо кроз пример давања доприноса пројекту слањем закрпа алатом git imap-send
.
Команда git send-email
се користи за слање закрпа које је генерисала команда git format-patch
имејлом.
У ch05-distributed-git.asc пролазимо кроз пример давања доприноса пројекту слањем закрпа алатом git send-email
.
Команда git request-pull
се једноставно користи да генерише пример тела имејл поруке коју треба некоме да пошаљете.
Ако имате грану на јавном серверу и желите да неко зна како да интегрише те измене без потребе да закрпе шаљете имејлом, можете да извршите ову команду и пошаљете њен излаз особи која треба да повуче измене.
Начин употребе команде git request-pull
за генерисање поруке повлачења описујемо у ch05-distributed-git.asc.
Програм Гит долази са неколико команди којима се интегрише са осталим системима за контролу верзије.
Команда git svn
се користи за комуникацију са Subversion системом за контролу верзије као клијент.
То значи да програм Гит можете употребити да одјавите са и да комитујете на Subversion сервер.
Ова команда је детаљно приказана у ch09-git-and-other-systems.asc.
За остале системе контроле верзије или за увоз из скоро било ког формата, можете да употребите команду git fast-import
која брзо мапира други формат у нешто што програм Гит лако може да забележи.
Ова команда је детаљно приказана у ch09-git-and-other-systems.asc.
Ако администрирате Гит репозиторијум или ако морате да поправите нешто крупно, програм Git вам обезбеђује већи број административних команди које вам помажу у томе.
Команда git gc
обавља „скупљање ђубрета” по вашем репозиторијуму, уклањајући непотребне фајлове из базе података и пакујући преостале фајлове у ефикаснији формат.
Ова команда се обично извршава у позадини, мада можете и ручно да је покренете ако то желите. У ch10-git-internals.asc приказујемо неколико примера.
Команда git fsck
се користи за проверу конзистентности интерне базе података и проблема су вез ње.
Користили смо је само једном у ch10-git-internals.asc да пронађемо висеће објекте.
Команда git reflog
пролази кроз лог свих места на које су указивале главе ваших грана док сте радили да би пронашла комитове које сте можда изгубили кроз поновно исписивање историја.
Ову команду углавном приказујемо у ch07-git-tools.asc, где представљамо уобичајену употребу, као и како да употребите git log -g
да исте информације погледате у излазу команде git log
.
У ch10-git-internals.asc такође пролазимо кроз практични пример опоравка једне такве изгубљене гране.
Команда git filter-branch
се користи за поновно исписивање гомиле комитова према одређеним шаблонима, као што је уклањање фајла са свих места или филтрирање комплетног репозиторијума на један једини поддиректоријум у циљу издвајања пројекта.
У ch07-git-tools.asc објашњавамо команду и истражујемо неколико различитих опција као што су --commit-filter
, --subdirectory-filter
и --tree-filter
.
У ch09-git-and-other-systems.asc је користимо да поправимо увезене спољне репозиторијуме.
Такође постоји већи број водоводних команди нижег нивоа које срећемо кроз књигу.
Прва на коју наилазимо је ls-remote
у ch06-github.asc коју користимо за преглед сирових референци на серверу.
ls-files
користимо у ch07-git-tools.asc, ch07-git-tools.asc и ch07-git-tools.asc да прикажемо сирови поглед на стање стејџа.
Такође помињемо rev-parse
у ch07-git-tools.asc да узме скоро било који стринг и претвори га у SHA-1 објекта.
Међутим, већину водоводних команди ниског нивоа представљамо у ch10-git-internals.asc, што је мање-више оно на шта се фокусира то поглавље. Покушали смо да их не употребимо у већем делу остатка књиге.