-
1. Почетак
- 1.1 О контроли верзије
- 1.2 Кратка историја програма Гит
- 1.3 Шта је Гит?
- 1.4 Командна линија
- 1.5 Инсталирање програма Гит
- 1.6 Подешавања за први пут
- 1.7 Тражење помоћи
- 1.8 Резиме
-
2. Основе програма Гит
- 2.1 Прављење Гит репозиторијума
- 2.2 Снимање промена над репозиторијумом
- 2.3 Преглед историје комитова
- 2.4 Опозив
- 2.5 Рад са удаљеним репозиторијумима
- 2.6 Означавање
- 2.7 Гит алијаси
- 2.8 Резиме
-
3. Гранање у програму Гит
- 3.1 Укратко о гранању
- 3.2 Основе гранања и спајања
- 3.3 Управљање гранама
- 3.4 Процеси рада са гранањем
- 3.5 Удаљене гране
- 3.6 Ребазирање
- 3.7 Резиме
-
4. Гит на серверу
- 4.1 Протоколи
- 4.2 Постављање програма Гит на сервер
- 4.3 Генерисање јавног SSH кључа
- 4.4 Подешавање сервера
- 4.5 Гит демон
- 4.6 Паметан HTTP
- 4.7 GitWeb
- 4.8 GitLab
- 4.9 Опције за хостовање које нуде трећа лица
- 4.10 Резиме
-
5. Дистрибуирани Гит
-
6. GitHub
-
7. Гит алати
- 7.1 Избор ревизија
- 7.2 Интерактивно стејџовање
- 7.3 Скривање и чишћење
- 7.4 Потписивање вашег рада
- 7.5 Претрага
- 7.6 Поновно исписивање историје
- 7.7 Демистификовани ресет
- 7.8 Напредно спајање
- 7.9 Rerere
- 7.10 Отклањање грешака са програмом Git
- 7.11 Подмодули
- 7.12 Паковање
- 7.13 Замена
- 7.14 Складиште акредитива
- 7.15 Резиме
-
8. Прилагођавање програма Гит
- 8.1 Конфигурисање програма Гит
- 8.2 Гит атрибути
- 8.3 Гит куке
- 8.4 Пример полисе коју спроводи програм Гит
- 8.5 Резиме
-
9. Гит и остали системи
- 9.1 Гит као клијент
- 9.2 Мигрирање на Гит
- 9.3 Резиме
-
10. Гит изнутра
- 10.1 Водовод и порцелан
- 10.2 Гит објекти
- 10.3 Гит референце
- 10.4 Pack фајлови
- 10.5 Рефспек
- 10.6 Протоколи за пренос
- 10.7 Одржавање и опоравак податак
- 10.8 Променљиве окружења
- 10.9 Резиме
-
A1. Додатак А: Програм Гит у другим окружењима
- A1.1 Графички интерфејси
- A1.2 Гит у Visual Studio
- A1.3 Гит у Visual Studio Code
- A1.4 Гит у IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine
- A1.5 Гит у Sublime Text
- A1.6 Гит унутар Bash
- A1.7 Гит у Zsh
- A1.8 Гит у Powershell
- A1.9 Резиме
-
A2. Додатак Б: Уграђивање програма Гит у ваше апликације
- A2.1 Гит из командне линије
- A2.2 Libgit2
- A2.3 JGit
- A2.4 go-git
- A2.5 Dulwich
-
A3. Додатак В: Гит команде
- A3.1 Подешавање и конфигурација
- A3.2 Набављање и креирање пројеката
- A3.3 Основно снимање
- A3.4 Гранање и спајање
- A3.5 Дељење и ажурирање пројеката
- A3.6 Инспекција и поређење
- A3.7 Отклањање грешака
- A3.8 Крпљење
- A3.9 Имејл
- A3.10 Спољни системи
- A3.11 Администрација
- A3.12 Водоводне команде
A3.3 Додатак В: Гит команде - Основно снимање
Основно снимање
За основни процес рада у којем се садржај поставља на стејџ и комитује у историју, постоји само неколико основних команди.
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
се користи за уклањање нежељених фајлова из радног директоријума.
То може да укључи уклањање привремених артефакта изградње или фајлова конфликта при спајању.
Доста опција и сценарија у којима би могли да употребите команду за чишћење покривамо у Чишћење вашег радног директоријума.