git._shpargalka
Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| git._shpargalka [2017/01/08 14:52] – [История] daniil | git._shpargalka [2020/07/12 20:18] (текущий) – daniil | ||
|---|---|---|---|
| Строка 11: | Строка 11: | ||
| git < | git < | ||
| man git-< | man git-< | ||
| - | </ | ||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Настройка ===== | ||
| - | |||
| - | ==== Конфигурационные файлы ==== | ||
| - | Настройки на каждом последующем уровне подменяют настройки из предыдущих уровней. | ||
| - | |||
| - | ^ Конфигурационный файл ^ Описание ^ | ||
| - | | **%%/ | ||
| - | | **%%~/ | ||
| - | | **%%.git/ | ||
| - | ==== Задать имя контактный ящик ==== | ||
| - | |||
| - | <code bash> | ||
| - | git config --global user.name "John Doe" | ||
| - | git config --global user.email johndoe@example.com | ||
| - | </ | ||
| - | |||
| - | ==== Выбор редактора по умолчанию ==== | ||
| - | |||
| - | <code bash> | ||
| - | git config --global core.editor vim # Vim | ||
| - | git config --global core.editor emacs # Emacs | ||
| - | git config --global core.editor nano # Nano | ||
| - | </ | ||
| - | |||
| - | ==== Алиасы ==== | ||
| - | |||
| - | === Поддержка цветов === | ||
| - | |||
| - | <code bash> | ||
| - | git config --global color.branch auto | ||
| - | git config --global color.diff auto | ||
| - | git config --global color.interactive auto | ||
| - | git config --global color.status auto | ||
| - | </ | ||
| - | |||
| - | === Псевдонимы для команд Git === | ||
| - | |||
| - | <code bash> | ||
| - | git config --global alias.co checkout | ||
| - | git config --global alias.ci commit | ||
| - | git config --global alias.st status | ||
| - | git config --global alias.br branch | ||
| - | git config --global alias.type cat-file -t | ||
| - | git config --global alias.dump cat-file -p | ||
| - | </ | ||
| - | |||
| - | ==== Просмотр существующих настроек ==== | ||
| - | |||
| - | <code bash> | ||
| - | git config --list | ||
| - | git config --local --list | ||
| - | git config --system --list | ||
| </ | </ | ||
| Строка 86: | Строка 30: | ||
| git add . # Индексировать рекурсивно все данные в каталоге | git add . # Индексировать рекурсивно все данные в каталоге | ||
| git commit | git commit | ||
| - | </ | ||
| - | |||
| - | |||
| - | ---- | ||
| - | |||
| - | ===== Клонирование репозитория ===== | ||
| - | |||
| - | Клонирование выполняется командой '' | ||
| - | <code bash> | ||
| - | git clone https:// | ||
| - | </ | ||
| - | В результате будет создана директория libgit2, поддиректория .git и загружены все данные для текущего репозитория. | ||
| - | \\ | ||
| - | Для клонирования репозитория в каталог с заданным именем, | ||
| - | |||
| - | <code bash> | ||
| - | git clone https:// | ||
| - | </ | ||
| - | |||
| - | ==== Пример работы с другими транспортными протоколами ==== | ||
| - | |||
| - | <code bash> | ||
| - | git clone ssh:// | ||
| - | git clone git:// | ||
| - | git clone http:// | ||
| - | git clone file:/// | ||
| - | |||
| - | # git with github | ||
| - | git clone git@github.com: | ||
| - | git clone git@github.com: | ||
| - | git clone git@github.com: | ||
| </ | </ | ||
| Строка 143: | Строка 56: | ||
| Шаблон игнорируемых файлов задается в **'' | Шаблон игнорируемых файлов задается в **'' | ||
| <code bash> | <code bash> | ||
| - | # Все файлы, которые заканчиваются на .o или .a | + | *.[oa] |
| - | *.[oa] | + | !lib.a |
| + | *~ # Всё, что заканчивается на ~ | ||
| + | /TODO # Игнорировать файл TODO, однако НЕ каталог TODO | ||
| + | build/ | ||
| + | doc/*.txt # Игнорировать, | ||
| + | doc/ | ||
| + | </ | ||
| - | # Однако НЕ игнорировать файл lib.a | ||
| - | !lib.a | ||
| - | |||
| - | # Всё, что заканчивается на ~ | ||
| - | *~ | ||
| - | |||
| - | # Игнорировать файл TODO, однако НЕ каталог TODO | ||
| - | /TODO | ||
| - | |||
| - | # Игнорировать все файлы в каталоге build/ | ||
| - | build/ | ||
| - | |||
| - | # Игнорировать, | ||
| - | doc/*.txt | ||
| - | |||
| - | # Игнорировать все .txt файлы во всех вложенных в doc/ каталогах | ||
| - | doc/ | ||
| - | </ | ||
| <WRAP center round info 100%> | <WRAP center round info 100%> | ||
| При этом помним: | При этом помним: | ||
| Строка 249: | Строка 150: | ||
| <code bash> | <code bash> | ||
| - | git reset --hard < | + | git reset --hard < |
| + | git reset --hard HEAD~1 | ||
| </ | </ | ||
| Строка 276: | Строка 178: | ||
| ---- | ---- | ||
| - | ===== Отмена изменений | + | ===== Операции отмены ===== |
| - | **Возврат к сохранённому состоянию:** | + | ==== Изменить последний коммит ==== |
| + | |||
| + | Изменить последний | ||
| + | Пример добавления файла: | ||
| + | <code bash> | ||
| + | git commit -m ' | ||
| + | git add forgotten_file | ||
| + | git commit --amend | ||
| + | </ | ||
| + | |||
| + | Для изменения комментария к коммиту, | ||
| <code bash> | <code bash> | ||
| - | git checkout -- file.txt | + | git commit --amend |
| - | git commit --amend | + | |
| - | # если после последнего коммита не было ни каких изменений в рабочем каталоге | + | |
| - | git reset HEAD < | + | |
| - | git reset --hard HEAD~1 | + | |
| </ | </ | ||
| + | |||
| + | ==== Отмена подготовки файла ==== | ||
| + | Ситуация: | ||
| + | |||
| + | <code bash> | ||
| + | git reset HEAD < | ||
| + | git commit -m ' | ||
| + | git add < | ||
| + | git commit -m ' | ||
| + | </ | ||
| + | |||
| + | ==== Отмена изменения измененного файла ==== | ||
| + | |||
| + | Вернуть файл **filename** к состоянию из последнего коммита. | ||
| + | |||
| + | <code bash> | ||
| + | git checkout -- filename | ||
| + | </ | ||
| + | При этом помним: | ||
| ---- | ---- | ||
| Строка 328: | Строка 255: | ||
| git log -2 --stat | git log -2 --stat | ||
| git log --pretty=oneline | git log --pretty=oneline | ||
| + | |||
| git log --since=2.weeks | git log --since=2.weeks | ||
| + | git log --after=" | ||
| git log --until=2.weeks | git log --until=2.weeks | ||
| + | git log --before=" | ||
| + | |||
| + | git log --author=" | ||
| git log -S< | git log -S< | ||
| git log --oneline | git log --oneline | ||
| Строка 378: | Строка 310: | ||
| git tag # Посмотреть все (перечисляет в алфавитном порядке) | git tag # Посмотреть все (перечисляет в алфавитном порядке) | ||
| git tag -l ' | git tag -l ' | ||
| - | git tag -a v1.4 -m 'my version 1.4' | + | git tag -a v1.4 -m 'my version 1.4' |
| + | git tag -a v1.4 -m 'my v1.4' 98fced0 | ||
| git tag < | git tag < | ||
| - | git show <tag> | + | git show < |
| git checkout < | git checkout < | ||
| git checkout < | git checkout < | ||
| git tag -d < | git tag -d < | ||
| + | git push origin v1.4 # Отправить метку на общий сервер (по умолчанию git push метки не отправляет) | ||
| + | git push origin --tags | ||
| </ | </ | ||
| ---- | ---- | ||
git._shpargalka.1483876320.txt.gz · Последнее изменение: 2017/01/08 00:00 (внешнее изменение)
