Чување измена на постојећим фајловима
У претходној лекцији си направио свој први комит, којим си у репозиторијум Geometrija сачувао фајлове README.md, index.html, styles.css и script.js. У пракси ће много чешће бити ситуација у којима треба да сачуваш измене на фајловима који су већ део репозиторијума.
Нека је задатак да у фајлу README.md, уместо линије текста где је написано твоје име John Doe додаш један празан ред и текст...
Школски центар "Никола Тесла", Вршац
Смер: Техничар информационих технологија
Одељење: III2
Ученик: John Doe
...и ту измену сачуваш у репозиторијуму. Отвори README.md у едитору и измени текст како је тражено. Ако сада извршиш команду git status, Git ће те обавестити да постоје измене које нису стejџоване:
On branch master
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in working directory)
modified: README.md
no changes added to commit (use "git add" and/or "git commit -a")
Порука те обавештава да су фајлови измењени, али не и шта је тачно измењено. Да би видео детаљан преглед измена, користи команду:
Добићеш поруку сличну овој:
diff --git a/README.md b/README.md
index 4647d47..f69f6e9 100644
--- a/README.md
+++ b/README.md
@@ -2,4 +2,9 @@
Веб апликација за рачунање треће странице, обима и површине правоуглог
троугла помоћу Питагорине теореме.
-John Doe
+
+Школски центар "Никола Тесла", Вршац
+Смер: Техничар информационих технологија
+Одељење: III2
+Ученик: John Doe
+
Линије које почињу знаком - су линије које су уклоњене, линије које почињу знаком + су линије које су додате, док линије без знака представљају линије које нису измењене, а исписују се ради лакше оријентације.
Стejџовање и комитовање измена
Поступак је исти као и код нових фајлова - прво стejџујеш измене, па их онда комитујеш.
Ако сада желиш да провериш шта тачно улази у следећи комит, можеш да искористиш опцију --staged (или, еквивалентно, --cached) уз git diff:
Ова команда ће приказати исти diff, само за измене које се налазе у секцији Changes to be committed, односно оне које ће заиста бити сачуване следећим комитом. Ово је нарочито корисно навика - да увек пре комитовања прегледаш шта си тачно стejџовао, како не би случајно сачувао нешто што ниси намеравао. git status ће сада приказати следећу поруку:
On branch master
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
modified: README.md
Када си задовољан прегледом, можеш да комитујеш измене...
...што ће резултирати поруком:
Прескакање стejџовања
Нека је следећи задатак да у заглављу фајла index.html додаш следећу линију:
Отвори index.html у едитору и измени HTML како је тражено. Пошто је index.html фајл који Git већ прати (јер си га већ једном раније комитовао), не мораш обавезно да га прво стejџујеш па онда комитујеш - та два корака можеш да спојиш у један, коришћењем опције -a уз команду git commit...
...што ће резултирати поруком:
Опција -a аутоматски стejџује све измене на фајловима које Git већ прати, пре него што изврши комит. Ово ти уштеди корак, али постоји важно ограничење - ова опција не обухвата нове, нестejџоване фајлове (оне које Git још увек не прати). Ако у оквиру пројекта додаш нови фајл, њега и даље мораш ручно да стejџујеш командом git add, без обзира на то да ли касније користиш -a или не.