Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия Последняя версия Следующая версия справа и слева | ||
subjects:programming:git [2022/01/13 17:17] ¶ [URL] |
subjects:programming:git [2023/02/22 19:37] ¶ [add] |
||
---|---|---|---|
Строка 49: | Строка 49: | ||
Первая строка предписывает Git'у игнорировать любые файлы заканчивающиеся на .o или .a — объектные и архивные файлы, которые могут появиться во время сборки кода. Вторая - то же самое, для файлов заканчивающихся на "''.log''". | Первая строка предписывает Git'у игнорировать любые файлы заканчивающиеся на .o или .a — объектные и архивные файлы, которые могут появиться во время сборки кода. Вторая - то же самое, для файлов заканчивающихся на "''.log''". | ||
+ | |||
+ | Исключаем папки и файлы, начинающиеся с двух подчёркиваний и содержимое ''virt.py3'': | ||
+ | <file bash .gitignore> | ||
+ | __*/* | ||
+ | __* | ||
+ | virt.py3/* | ||
+ | </file> | ||
+ | |||
+ | ==== help ==== | ||
+ | <code bash>$ git help</code> | ||
+ | |||
+ | ==== status ==== | ||
+ | Вывести информацию обо всех изменениях, внесенных в дерево директорий проекта: | ||
+ | <code bash>$ git status</code> | ||
+ | |||
+ | Краткий вывод: | ||
+ | <code bash>$ git status --short | ||
+ | $ git status --s</code> | ||
+ | |||
+ | Обозначения в выводе команды ''git status -s'': | ||
+ | * ''M'' - (**m**odified) отслеживаемые, изменились с прошлого коммита, еще не добавлены | ||
+ | * ''D'' - (**d**eleted) отслеживаемые, удалены после прошлого коммита, еще не добавлены | ||
+ | * ''?'' - (untracked) неотслеживаемые, не запрещены к добавлению | ||
+ | * ''!'' - (ignored) неотслеживаемые, запрещены к добавлению (например, в .gitignore) | ||
+ | |||
+ | ==== add ==== | ||
+ | <code bash> | ||
+ | $ git add . | ||
+ | $ git add -all | ||
+ | $ git add -A | ||
+ | $ git add -update | ||
+ | $ git add -u | ||
+ | </code> | ||
+ | |||
+ | * ''git add .'' -- Добавляет файлы ''M'', ''D'', ''?''. | ||
+ | * ''-all'', ''-A'' -- Эти варианты эквивалентны и добавляют ''M'', ''D'', ''?''. Без точки — из всей рабочей области. С точкой — только текущий путь: ''git add -A .'' = ''git add .'' + ''git add -u .'' \\ <code bash>git add .</code> | ||
+ | * ''-update'', ''-u'' -- Git обновляет (update) статус уже отслеживаемых файлов т.е. M, D. | ||
+ | * ''git add *'' -- Этот синтаксис лучше не использовать, т.к. он пытается добавить ''M'', ''?'', ''!'', причём последнее приводит к ошибке. | ||
+ | |||
+ | ==== commit ==== | ||
+ | <code bash> | ||
+ | $ git commit | ||
+ | $ git commit -a | ||
+ | $ git commit -m "text" | ||
+ | </code> | ||
+ | * ''git commit'' -- Если индекс не пустой, то на его основе будет совершен коммит, после чего пользователя попросят прокомментировать вносимые изменения. | ||
+ | * ''-a'' -- Совершит коммит, автоматически индексируя изменения в файлах проекта. **Новые** файлы при этом индексироваться **не будут**! Удаление же файлов будет учтено. | ||
+ | * ''-m "text"'' -- Комментируем коммит прямо из командной строки вместо текстового редактора. \\ <code bash>git commit -m "Название коммита"</code> | ||
+ | * Чтобы изменить имя последнего коммита, достаточно ввести: \\ <code bash>git commit --amend -m "Новое название коммита"</code>. Для изменения имени других коммитов, нужно сделать: \\ <code bash>git commit --amend -c <commit ID></code> | ||
+ | ==== Разное ==== | ||
+ | * ''git rm FILE1 FILE2'' -- Удалить файл(ы) из индекса и дерева одновременно. | ||
+ | * ''git reset'' -- Сбросить весь индекс. \\ Помимо работы с индексом, позволяет сбросить состояние проекта до какого-либо коммита в истории: | ||
+ | * «Мягкий» (с ключом "--soft") резет оставит нетронутыми ваши индекс и все дерево файлов и директорий проекта, вернется к работе с указанным коммитом. \\ ''git reset --soft HEAD^'' -- переходим к работе над уже совершенным коммитом, сохраняя все состояние проекта и проиндексированные файлы. | ||
+ | * «Жесткий» резет (ключ --hard) — команда, которую следует использовать с осторожностью. Git reset --hard вернет дерево проекта и индекс в состояние, соответствующее указанному коммиту, удалив изменения последующих коммитов. \\ ''git reset --hard HEAD~3'' -- Никто и никогда не увидит три последних коммита. | ||
+ | * ''revert'' -- отмена изменений, произведенных в прошлом отдельным коммитом. Для использования команды необходимо, чтобы состояние проекта не отличалось от состояния, зафиксированного последним коммитом. | ||
+ | * ''git revert config-modify-tag'' -- отменяем коммит, помеченный тегом. | ||
+ | * ''git revert 12abacd'' -- отменяем коммит, используя его хэш. | ||
+ | * ''git log'' -- Разнообразная информация о коммитах в целом, по отдельным файлам и различной глубины погружения в историю. | ||
+ | * ''git diff'' -- Отличия между деревьями проекта; коммитами; состоянием индекса и каким-либо коммитом. | ||
+ | * ''git diff '' -- Изменения, не внесенные в индекс. | ||
+ | * ''git diff --cached'' -- Изменения, внесенные в индекс. | ||
+ | * ''git diff HEAD'' -- Изменения в проекте по сравнению с последним коммитом. | ||
+ | * ''git diff HEAD^'' -- Изменения в проекте по сравнению с **пред**последним коммитом. | ||
+ | * ''git branch'' -- Создание, перечисление и удаление веток | ||
+ | * ''git branch'' -- Просто перечислит существующие ветки, отметив активную. | ||
+ | * ''git branch new-branch'' -- Создаст новую ветку new-branch. | ||
+ | * ''git branch -d new-branch'' -- Удалит ветку, если та была залита (merged) с разрешением возможных конфликтов в текущую. | ||
+ | * ''git branch -D new-branch'' -- Удалит ветку в любом случае. | ||
+ | * ''git branch -m new-name-branch'' -- Переименует ветку. | ||
+ | * ''git branch --contains v1.2'' -- Покажет те ветки, среди предков которых есть определенный коммит. | ||
+ | * ''git checkout'' -- Переключение между ветками, извлечение отдельных файлов из истории коммитов | ||
+ | * ''git rebase'' -- Построение ровной линии коммитов | ||
+ | * ''git cherry-pick'' -- Применение к дереву проекта изменений, внесенных отдельным коммитом | ||
+ | * ''git tag'' -- Тэги как способ пометить уникальный коммит | ||
+ | * '''' -- | ||
+ | |||
==== Удаленный репозиторий ==== | ==== Удаленный репозиторий ==== |