Полный цикл в digital

Файловая система Git

Git отслеживает файлы в трёх основных разделах:

  • Рабочая директория, файловая система вашего компьютера
  • Область подготовленных файлов staging area, хранит содержание следующего коммита
  • HEAD, последний коммит в репозитории

Все основные команды по работе с файлами сводятся к пониманию того, как Git управляет этими тремя разделами. Существует распространённое заблуждение, что область подготовленных файлов только хранит изменения. Лучше думать об этих трёх разделах как об отдельных файловых системах, каждая из которых содержит свои копии файлов.

Добавление изменённых файлов в индекс add

Добавить в индекс указанный файл, если он был изменён, удалён, или это новый файл:

git add имя_файла

Добавить в индекс все новые, изменённые, удалённые файлы из текущей директории и её поддиректорий:

git add .

Показать новые, изменённые файлы по очереди с указанием их изменений и вопросом об отслеживании и индексировании:

git add -p

Проверка новых файлов status

Показать состояние репозитория - отслеживаемые, изменённые, новые файлы:

git status

Получить более компактный вывод. Если файл не отслеживается, то будет выведено ?? если он был изменён, тогда его имя будет красным, а если подготовлен зелёным:

git status -s

Новые файлы имеют четыре состояния:

  • untracked неотслеживаемый, находится в рабочей директории но нет ни одной версии в HEAD или в области подготовленных файлов (Git не знает о файле)
  • modified изменён, в рабочей директории есть более новая версия по сравнению с хранящейся в HEAD или в области подготовленных файлов (изменения не находятся в следующем коммите)
  • staged подготовлен, в рабочей директории и области подготовленных файлов есть более новая версия по сравнению с хранящейся в HEAD (готов к коммиту)
  • без изменений одна версия файла во всех разделах, в последнем коммите содержится актуальная версия

Просмотр изменений в файле diff

Посмотреть изменения не внесенные в индекс:

git diff

Посмотреть изменения внесенные в индекс:

git diff --cached

Посмотреть изменения в проекте по сравнению с последним коммитом:

git diff HEAD

Сравнить файл index.html из рабочей директории и индекс:

git diff index.html

Посмотреть что сделано в ветке feature по сравнению с веткой master:

git diff master feature

Посмотреть что сделано в ветке feature по сравнению с веткой master, показать только имена файлов:

git diff --name-only master feature

Посмотреть что сделано в ветке feature с момента коммита, расхождения с master:

git diff master...feature

Удаление изменений в файлах из индекса reset

Убрать из индекса изменения указанного файла (в рабочей директории изменения сохранятся), после этого применяется git checkout имя_файла:

git reset имя_файла

Убрать из индекса все добавленные в него изменения (в рабочей директории все изменения сохранятся), антипод git add ., после этого применяется git checkout имя_файла:

git reset .

Отмена изменений в файлах из индексе checkout

Отменить изменения в файле, вернуть состояние файла имеющееся в индексе:

git checkout имя_файла

Отменить изменения во всех файлах, вернуть состояние файлов имеющихся в индексе:

git checkout .

Удаление файла rm

Вычеркиваем файл из Git для отслеживания:

git rm --cached имя_файла

Вычеркиваем папку с файлами из Git для отслеживания:

git rm -r --cached имя_файла

Удалить отслеживаемый неизменённый файл и проиндексировать это изменение:

git rm имя_файла

Удалить отслеживаемый изменённый файл и проиндексировать это изменение:

git rm -f имя_файла

Удалить всё содержимое отслеживаемой директории log/ и проиндексировать это изменение:

git rm -r log/

Удалить все отслеживаемые файлы с именем, начинающимся на ind в текущей директории и проиндексировать это изменение:

git rm ind*

Перемещение/переименование файла my

Переименовать файл text.txt в test_new.txt и проиндексировать это изменение:

git mv text.txt test_new.txt

Переместить файл readme_new.md в директорию folder/ (должна существовать) и проиндексировать это изменение:

git mv readme_new.md folder/

Заполните форму уже сегодня!
Для начала сотрудничества необходимо заполнить заявку или заказать обратный звонок. В ответ получите коммерческое предложение, которое будет содержать индивидуальную стратегию с учетом требований и поставленных задач
Работаем по будням с 9:00 до 18:00. Заявки, отправленные в выходные, обрабатываем в первый рабочий день до 12:00.
Спасибо, ваш запрос принят и будет обработан!
Эйч Маркетинг