diff options
| author | vlapa <vlapa@ya.ru> | 2026-06-13 20:33:26 +0300 |
|---|---|---|
| committer | vlapa <vlapa@ya.ru> | 2026-06-13 20:33:26 +0300 |
| commit | e5abc1fe99340b979b18864d978179f71fe8f5c5 (patch) | |
| tree | 98fd0ad7c6d0744894d6e74e446daacd9e6dd1b5 /GIT_new.md | |
First
Diffstat (limited to 'GIT_new.md')
| -rw-r--r-- | GIT_new.md | 165 |
1 files changed, 165 insertions, 0 deletions
diff --git a/GIT_new.md b/GIT_new.md new file mode 100644 index 0000000..b93ffa1 --- /dev/null +++ b/GIT_new.md @@ -0,0 +1,165 @@ +```sh +#========================================== +# Полный список подкоманд: +git help --all + +# Установка редактора по умолчанию: +export GIT_EDITOR=vim + +# Настройка автора фиксации: +git config --global user.name "my_name" +git config --global user.email "my_name@mail.com" + +-add # добавляет файлы в индекс +-bisect # выполняет бинарный поиск ошибки по истории фиксаций +-branch # выводит, создает, или удаляет ветки +-checkout # проверяет и переключает на ветку +-clone # клонирует репозиторий в новый каталог +-commit # записывает изменения в каталог (фиксация) +-diff # показывает изменения между фиксациями, рабочими деревьями... +-fetch # загружает объекты и ссылки из другого репозитория +-grep # выводит строки, соответствующие шаблону +-init # создает пустой репозиторий git, или переинициализирует существующий +-log # показывает журналы фиксации +-merge # объединяет две, или больше истории разработки +-mv # перемещает, или переименовывает файл, каталог, или символическую ссылку +-pull # получает изменения из удаленного репозитория и объединяет их с локальным, или локальной веткой +-push # загружет изменения из локального репозитория в удаленный +-rebase # строит ровную линию фиксаций +-reset # сбрасывает текущий HEAD в указанное состояние +-rm # удаляет файлы из рабочего дерева и из индекса +-show # показывает различные типы объектов +-status # показывает состояние рабочего дерева +-tag # создает, выводит, удаляет, или проверяет тег объекта, подписанного с GPG + + + +#========================================== +# Создание веток: +git branch name_branch [начальная фиксация] + +# Вывод имен веток в репозитории: +git branch + -r # удаленные ветки + -a # все ветки + +# Вывод детальной информации: +git show-branch + +# Переключение на другую ветку: +git checkout name_branch + +# Объединение изменений в другую ветку: +git checkout -m dev + +# Создание новой ветки и переключение на нее: +git checkout -b dev_new + +#========================================== +# Использование UNIX команды diff: +diff -u cat-1 cat-2 + +# Разница между рабочим каталогом и индексом: +git diff + +# Разница между рабочим каталогом и указанной фиксацией: +git diff фиксация + +# Разница между подготовленными в индексе изиенениями и заданной фиксацией: +git diff --cached фиксация + +#========================================== +# Исследование конфликтов слияния: +git merge alt + +# Когда есть кофликты, рабочая копия каждого проблемного файла добавляется маркерами слияния - маркеры показывают две возможные версии конфликтного участка файла: нужно просто выбрать одну из фраз, удалить маркеры конфликта и выполнить команды: +git add +git commit + +# Отмена, или перезапуск слияния: +# Перед последним git commit: +# команда восстановит рабочий каталог и индекс в состояние предшествующее git merge: +git reset --hard HEAD + +# После завершения слияния (уже есть новая фиксация): +git reset --hard ORIG_HEAD +# перед началом слияния GIT созраняет оригинальную ветку HEAD в ссылке ORIG_HEAD, чтобы можно было выполнить откат слияния + +# Вернуться к исходному состоянию конфликта, чтобы разрешить его снова: +git checkout -m + +#========================================== +# Применение изменений представленных =фиксацией= на текущей ветке: +# не изменяет существующую историю в репозитории, вместо этого она добавляет фиксацию в историю: +git cherry-pick фиксация +# обычно используется чтобы представить определенные фиксации из одной ветки в репозитории в другую ветку +``` +![[Снимок экрана 2025-02-02 в 18.06.09.png]] + +```sh +# Отменяет фиксацию использую хэш этой фиксации +# не изменяет существующую историю в репозитории +# добавляет в историю новую фиксацию: +git revert фиксация +``` + +![[Снимок экрана 2025-02-02 в 18.13.01.png]] +```sh +#========================================== +# Изменение последней фиксации: +git commit --amend + +# Изменение последовательности фиксаций: +git rebase +# требует, как минимум, имени другой ветки, в которую будут перемещены фиксации, по умолчанию перебазируются фиксации из текущей ветки, которых еще нет в целевой ветке +# типично: сохранить серию фиксаций из указанной ветки на последнюю фиксацию ветки =master= +``` +![[Снимок экрана 2025-02-02 в 18.29.43.png]] +![[Снимок экрана 2025-02-02 в 18.30.02.png]] +```sh +# использование git rebase - портирование, ветка topic была портирована в ветку master + +#========================================== +# Если нужно сохранить все и заняться чем-то другим: +git stash save "работаю над текущим проектом" +# занимаемся чем-то другим +..... +git commit -a -m "что-то другое" +git stash pop +# выполнить можно только в чистый рабочий каталог ! +#========================================== +# Запись изменений в головы веток +# показывает транзакции только для одной ссылки за один раз +git reflog show + +# журнал изменений ветки fred: +git reflog fred +# каждая строка-это отдельная транзакция из истории ссылки, нчиная с самого последнего изменения и вплоть до самого первого + +#========================================== +# Создание "чистого" (bare) репозитория: +git init --bare + +# Преобразовать репозиторий в другой чистый клон: +git clone --bare vlapa@178.20.46.157:~/git/name new_name.git + +# добавить удаленную конфигурацию +git remote add origin /путь/к/репозиторию +# команда git remote добавила новый раздел remote с названием origin + +git push origin master +# изменения ветки master отправлены удаленному репозиторию origin + +#========================================== +# Посмотреть список веток в своем репозитории: +git branch -a + +#========================================== +# Загрузка обновлений: +git pull # состоит из двух команд: + -git fetch + -git merge (rebase) - по умолчанию = merge + +#========================================== +``` + |
