Git
Chapters ▾ 2nd Edition

A3.3 Додатак C: Гит команде - Основно снимање

Основно снимање

За основни процес рада у којем се садржај поставља на стејџ и комитује у историју, постоји само неколико основних команди.

git add

Команда git add поставља садржај из радног директоријума на стејџ (или „индекс”) за наредни комит. Када се изврши команда git commit, она подразумевано гледа у овај стејџ, тако да се git add користи да прецизно обликује оно што желите да да постане део снимка наредног комита.

Ова команда је изузетно важна у програму Гит и помиње се на доста места у књизи. Брзо ћемо проћи кроз неке јединствене употребе које можете да пронађете.

git add најпре уводимо и детаљно објашњавамо у Праћење нових фајлова.

Помињемо како се користи за разрешавање конфликата при стајању у Основни конфликти при спајању.

Показујемо како се користи за интерактивно постављање делова измењеног фајла на стејџ у Интерактивно стејџовање.

Коначно, емулирамо је на ниском нивоу у Објекти стабла, тако да можете да стекнете идеју шта она обавља у позадини.

git status

Команда git status ће вам приказати различита стања фајлова у радном директоријуму и на стејџу. Који фајлови су измењени и нису на стејџу, који се налазе на стејџу али још увек нису комитовани. У свом уобичајеном облику, она ће такође да покаже и неке основне савете како да померате фајлове између ових етапа.

status најпре описујемо у Провера статуса фајлова, и у њеном основном и у поједностављеном облику. Мада је користимо по целој књизи, овде је показано скоро све што можете да урадите командом git status.

git diff

Команда git diff се користи када желите да видите разлике између било која два стабла. То би могла бити разлика између радног окружења и стејџа (git diff само по себи), између стејџа и вашег последњег комита (git diff --staged), или између два комита (git diff master branchB).

Најпре представљамо основне употребе команде git diff у Преглед стејџованих и нестејџованих промена, где показујемо како да погледате које измене се налазе на стејџу, а које још увек нису тамо.

Користимо је у Смернице за комитове да опцијом --check пронађемо евентуалне проблеме са празним простором пре него што комитујемо.

У Како утврдити шта је уведено сазнајемо како да ефективније погледамо разлике између две гране са git diff A…​B синтаксом.

Користимо је да филтрирамо разлике у празном простору са -b и сазнајемо начин како да упоредимо различите етапе фајлова у конфликту са --theirs, --ours и --base у Напредно спајање.

Коначно, користимо је да ефективно упоредимо измене у подмодулу са --submodule у Први кораци са подмодулима.

git difftool

Команда git difftool једноставно покреће спољни алат за прилаз разлика између два стабла у случају када вам је потребно нешто више од онога што може уграђена git diff команда.

git commit

Команда git commit узима садржаје свих фајлова који су са git add постављени на стејџ и прави трајни снимак у бази података, па затим помера показивач текуће гране навише да показује на њега.

Основе комитовања најпре показујемо у Комитовање промена. Ту такође показујемо како се користи заставица -a којом се у свакодневним процесима рада прескаче git add корак и како се користи заставица -m којом се уместо покретања едитора директно прослеђује комит порука.

У Опозив објашњавамо опцију --amend којом се врши измена најновијег комита.

У Укратко о гранању улазимо у детаље онога што ради git commit, као и разлога зашто то ради баш на тај начин.

Сазнали смо како да криптографски потпишемо комитове помоћу заставице -S у Потписивање комитова.

Коначно, представљамо шта команда git commit ради у позадини и како је заиста имплементирана у Комит објекти.

git reset

Команда git reset се првенствено користи за поништавање ствари, што можете и да погодите када видите глагол. Она се помера око HEAD показивача и необавезно мења index или стејџ, а такође необавезно може и да измени радни директоријум ако употребите --hard. Ако се неправилно употреби, ова последња опција може да проузрокује губитак рада, тако да морате добро да је разумете пре него што почнете да је користите.

Најпре ефективно покривамо најједноставнији случај употребе команде git reset у Уклањање фајла са стејџа, где је користимо да са стејџа уклонимо фајл над којим смо извршили git add.

Затим је у Демистификовани ресет детаљно представљамо, комплетно поглавље је посвећено објашњењу ове команде.

У Прекид спајања користимо git reset --hard да прекинемо спајање, где такође користимо и git merge --abort, што донекле представља омотач око git reset команде.

git rm

git rm команда се користи за уклањање фајлова са стејџа и из радног директоријума програма Гит. Слична је команди git add у томе што на стејџ за наредни комит поставља акцију уклањања фајла.

Команду git rm детаљно представљамо у Уклањање фајлова, укључујући рекурзивно уклањање фајлова и уклањање само са стејџа, уз остављање у радном директоријуму са --cached.

Једина различита употреба команде git rm у књизи је у Уклањање објеката где укратко употребљавамо и објашњавамо --ignore-unmatch када се извршава git filter-branch, што једноставно не изазива грешку када фајл који покушавамо да уклонимо не постоји. Ово може бити корисно када се пишу скрипте.

git mv

Команда git mv је мала згодна команда за померање фајла па покретање git add над новим фајлом и git rm над старим фајлом.

Само је укратко помињемо у Премештање фајлова.

git clean

Команда git clean се користи за уклањање нежељених фајлова из радног директоријума. То може да укључи уклањање привремених артефакта изградње или фајлова конфликта при спајању.

Доста опција и сценарија у којима би могли да употребите команду за чишћење покривамо у Чишћење вашег радног директоријума.