Всем доброго времени суток и мы продолжаем знакомство с контролем версий git.
Откроем консольное окно GIT Bash Here в папке с репозиторием.
И давайте сразу рассмотрим следующую команду.
git statusc помощью этой команды мы можем определить все проиндексированные и неиндексированные файлы. Под индексированными файлами подразумевается что они были добавлены в наш 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в итоге мы увидим все изменения уже в проиндексированных файлах.
Вот так мы можем отслеживать состояние файлов и их изменения.
На этом дорогие друзья данная статья подходит к концу. Надеюсь сегодня вы узнали что то новое.
Я желаю вам успехов и удачи! Пока!