
Всем доброго времени суток и мы продолжаем знакомство с контролем версий git.
Откроем консольное окно GIT Bash Here в папке с репозиторием.
И давайте сразу рассмотрим следующую команду.
git status
c помощью этой команды мы можем определить все проиндексированные и неиндексированные файлы. Под индексированными файлами подразумевается что они были добавлены в наш git репозиторий с помощью команды git add (файлы) и не занесены в файл .gitignore про него мы поговорим далее. И неиндексированные, следовательно либо они содержаться в файле .gitignore, или мы их только добавили, удалили или изменили.
Все проиндексированные файлы и директории отображаются зеленым цветом, а неиндексированные красным.
Для примера давайте добавим в нашу папку с репозиторием новый файл или директорию, далее повторно выполним команду git status.
И мы увидим что данный файл или директория отображаются красным цветом так как не были проиндексированы версией контроля. Для индексации их необходимо добавить командой:
git add название файла или директории
после этой команды наш файл будет проиндексирован убедится в этом вы можете повторно выполнив команду git status. Такая же ситуация произойдет если мы внесем изменения в какой либо файл или удалим его из репозитория, здесь также придется зафиксировать изменение индексацией в системе контроля git.
Вывод команды git status можно привести к более читабельному виду добавить к ней флаг -s
git status -s
в чем же удобство такой команды? А в том что она более кратко выводит сообщение о состояниях файлов, пример вывода:
A file1 - проиндексированный файл
AD file2 - файл который был удален
M file3 - файл в который были внесены изменения
?? file4 - неизвестный файл или неиндексированный.
Вот так вот с помощью команды git status мы можем определять состояния файлов.
Идем дальше, могут возникнуть ситуации когда нам нет необходимости учитывать или индексировать файл в системе контроля.
И для того чтобы этой файл или группа файлов не учитывались, существует специальный файл .gitignore в котором перечисляются все файлы которые не подлежат индексации в системе, то есть они в ней никак не учитываются.
Пример: давайте добавим новый файл в нашу папку репозитория и здесь же создадим файл .gitignore у этого файла как и у .htaccess имя не указывается.
В самом .gitignore необходимо указать какие файлы мы хотим чтобы не учитывались.Пример:
#Файлы которые не будут учитываться
file.php
*.xml
rules.php
#Папки которые не будут учитываться
folder
С помощью решетки мы указываем однострочный комментарий, это условные обозначения которые никак не влияют на результат.
Как видите здесь мы запретили индексацию файла file.php, всех файлов заканчивающихся на xml и директорию folder.
В принципе здесь ничего сложного нет, обычно в этом файле указываются различные стороние библиотеки, модули, компоненты и т. д., содержание которых мы как правило не трогаем.
И напоследок я хотел вам рассказать еще об одной команде которая можем вам быть крайне полезна. С помощью команды git status мы можем отследить только внешнее состояние файла. Но что если мы хотим посмотреть внесенные изменения внутри файла? Для этого существует команда git diff
Введите:
git diff
если ваши файлы все проиндексированны, то данная команда ничего не вернет. Давайте внесем изменения в файлы репозитория. И попробуем выполнить данную команду повторно.
Нам вернулись все наши изменения в виде отображения - красным цветом обозначается старое состояние ,зеленым цветом новое.
Тут еще важно понимать что данная команда показывает только все изменения еще неиндексированных файлов.
Если вы выполните команду
git add .
то есть добавите(проиндексируете) все файлы тогда, команда git diff вернет вам уже пустой результат.
Если мы хотим просмотреть внесенные изменения уже проиндексированных файлам , нам нужно добавить флаг --cached
git diff --cached
в итоге мы увидим все изменения уже в проиндексированных файлах.
Вот так мы можем отслеживать состояние файлов и их изменения.
На этом дорогие друзья данная статья подходит к концу. Надеюсь сегодня вы узнали что то новое.
Я желаю вам успехов и удачи! Пока!