Перейти к содержимому
- snapshot(снепшот) – измененный файл
- diff (диф) – только изменения
- Revision(ревизия) – любое зафиксированное изменение в системе контроля версий
- Команда *unix diff – сравнение файлов
- Команда *unix patch – накладывание diff на файл
- commit (коммит) – процесс создания revision в СКВ (системе контроля версий)
- требования к commit
- Именование. Коммиты должны иметь осмысленное описание. Например: “fix scrolling”.
- Атомарность. Коммит должен решать одну задачу и желательно от начала до конца.
- поколения СКВ
- RCS, SCCS
- CVS, SourceSafe, Subversion
- Git, Bazaar, Mercurial
- Установка GIT
- mac: brew install git
- ubuntu: sudo apt install git
- windows: choco install git (chocolatey.org либо gitforwindows если вы не знакомы с пакетными менеджерами)
- Настройка имени и почты
- $ git config –global user.name “Mona Lisa”
- $ git config –global user.email “mona@lisa.io”
- Инициализация репозитория – git init внутри той директории, которая станет репозиторием (при этом создается директория .git)
- Файл .git/config – конфигурация репозитория
- Команда git status внутри папки .git – информация о репозитории
- Команда git add подготавливает измененный или добавленный файл к коммиту (пример: git add README.md)
- Команда git commit непосредственно фиксирует изменения в репозитории (флаг -m ‘init project’ – добавление короткого коментария к коммиту)
- Команда git log – просмотр истории коммитов (флаг -p – выводит diff, где “+” – добавленные строки, “-” – удаленные строки; перемещение по логу “f” и “b“)
- Идентификатор коммита, например, 679e31d62ac734e3074f092e417ba741be767a0d.
- Информация об авторе. Имя и адрес электронной почты, которые вводились во время конфигурации git.
- Дата коммита.
- Описание коммита. Сообщение, которое вводилось при выполнении коммита.
- Команда git show 3a64fccf14725593b7486ff09d6a6c325a5f8fcc – изменения в коммите с указанным id (можно соратить до первых семи символов id: git show 3a64fcc)
- Команда git diff – изменения в рабочей копии (каталог, в котором находится каталог репозитория .git)
- туториал от Github
- Все файлы делятся на tracked и untracked
- Untracked – это новый файл, который не был добавлен для отслеживания командой git add.
- Tracked – все остальные файлы являются tracked
- Файл .gitignore – список файлов-исключений для коммитов; гит будет игнорировать эти файлы (пример)
- Команда git rm – удаление данных из репозитория (примеры: git rm FILE1 FILE2, git rm Documentation/\*.txt)
- Состояния tracked файлов:
- unmodified
- modified (git commit не отображает файлы modified файлы)
- staged (файлы после команды git add)
- Команда git add -i – интерактивное добавление изменений в staged (или, как говорят, “в индекс”)

- Удаление файлов из индекса
- reset: git reset path/to/file переводит файл из состояния staged в modified
- checkout: git checkout path/to/file переводит файл из состояния modified в unmodified, то есть по сути эта команда сбрасывает изменения.
- Команда git clean -i – удаление untracked файлов
- Команда git branch – показывает список веток
- Команда git branch new-feature
- Команда git checkout new-feature