summaryrefslogtreecommitdiff
path: root/GIT_new.md
diff options
context:
space:
mode:
authorvlapa <vlapa@ya.ru>2026-06-13 20:33:26 +0300
committervlapa <vlapa@ya.ru>2026-06-13 20:33:26 +0300
commite5abc1fe99340b979b18864d978179f71fe8f5c5 (patch)
tree98fd0ad7c6d0744894d6e74e446daacd9e6dd1b5 /GIT_new.md
First
Diffstat (limited to 'GIT_new.md')
-rw-r--r--GIT_new.md165
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
+
+#==========================================
+```
+