Шпаргалка по Git на русском
🌵 Создание и удаление репозитория
🌵 Проверка состояния
🌵 Подготовка файлов к сохранению
🌵 Выполнить коммит
🌵 Изменить коммит
🌵 Посмотреть историю коммитов
🌵 Клонирование удаленного репозитория
🌵 Связка удаленного и локального репозиториев и д.р полезные команды
#doc #cheatsheet #git
🌵 Создание и удаление репозитория
🌵 Проверка состояния
🌵 Подготовка файлов к сохранению
🌵 Выполнить коммит
🌵 Изменить коммит
🌵 Посмотреть историю коммитов
🌵 Клонирование удаленного репозитория
🌵 Связка удаленного и локального репозиториев и д.р полезные команды
#doc #cheatsheet #git
👍66❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍78🔥19❤4🫡4
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82🔥15😱4❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍86🔥17❤9
Git — система контроля версий (файлов). Что-то вроде возможности сохраняться в компьютерных играх (в Git эквивалент игрового сохранения — коммит). Важно: добавление файлов к «сохранению» двухступенчатое: сначала добавляем файл в индекс (git add), потом «сохраняем» (git commit)
…
#doc #git #github #cheatsheet
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52🔥8❤5
1. Как задать имя пользователя и адрес электронной почты
Имя пользователя нужно, чтобы привязывать коммиты к вашему имени. Это не то же самое, что имя пользователя учётной записи GitHub, с помощью которого выполняется вход в профиль на GitHub. Задать или изменить имя пользователя можно с помощью команды git config. Новое имя будет автоматически отображаться в последующих коммитах, отправленных на GitHub через командную строку. Если хотите скрыть своё реальное имя, можно использовать в качестве имени пользователя Git произвольный набор символов.
git config --global user.name "Tara Routray"
Кроме того, командой git config можно изменять адрес электронной почты, привязанный к вашим коммитам Git. Новый адрес электронной почты будет автоматически отображаться во всех дальнейших коммитах, поданных на GitHub через командную строку.
git config --global user.email "[email protected]"
2. Кэширование учётных данных
Кэшировать учётные данные можно с помощью параметра config с флагом --global. Так вы избавитесь от необходимости вручную вводить имя пользователя и пароль при создании нового коммита.
git config --global credential.helper cache
3. Инициализация репозитория
Создать пустой репозиторий Git или вновь инициализировать существующий можно параметром init. При инициализации он создаст скрытую папку. В ней содержатся все объекты и ссылки, которые Git использует и создаёт в истории работы над проектом.
git init
4. Добавление отдельных файлов или всех файлов в область подготовленных файлов
Добавить отдельный файл в область подготовленных файлов можно параметром add с указанием имени файла. Просто замените somefile.js на актуальное имя.
git add somefile.js
Кроме того, можно добавить все файлы и папки в эту область, предоставив wildcard . вместо имени файла:
git add .
5. Проверка статуса репозитория
Просмотреть статус нужного репозитория можно по ключевому слову status: его действие распространяется на подготовленные, неподготовленные и неотслеживаемые файлы.
git status
6. Внесение изменений однострочным сообщением или через редактор
При создании коммита в репозитории можно добавить однострочное сообщение с помощью параметра commit с флагом -m. Само сообщение вводится непосредственно после флага, в кавычках.
git commit -m "Your short summary about the commit"
Также можно открыть текстовый редактор в терминале для написания полного сообщения коммита. Оно может состоять из нескольких строк текста, в котором подробно характеризуются изменения, внесённые в репозиторий.
git commit
7. Просмотр истории коммитов с изменениями
Просматривать изменения, внесённые в репозиторий, можно с помощью параметра log. Он отображает список последних коммитов в порядке выполнения. Кроме того, добавив флаг -p, вы можете подробно изучить изменения, внесённые в каждый файл.
git log -p
8. Просмотр заданного коммита
Просмотреть полный список изменений, внесённых конкретным коммитом, можно с помощью параметра show, указав идентификатор или хеш коммита. Значение хеша уникально для каждого коммита, созданного в вашем репозитории.
git show 1af17e73721dbe0c40011b82ed4bb1a7dbe3ce29
Также можно использовать сокращённый хеш.
git show 1af17e
9. Просмотр изменений до коммита
Можно просматривать список изменений, внесённых в репозиторий, используя параметр diff. По умолчанию отображаются только изменения, не подготовленные для фиксации.
git diff
Для просмотра подготовленных изменений необходимо добавить флаг --staged.
git diff --staged
Также можно указать имя файла как параметр и просмотреть изменения, внесённые только в этот файл.
git diff somefile.js
10. Удаление отслеживаемых файлов из текущего рабочего дерева
Удалять файлы из текущего рабочего дерева можно с помощью параметра rm. При этом файлы удаляются и из индекса.
git rm dirname/somefile.js
Можно также использовать маски файлов (например *.js, *.html) для удаления всех файлов, соответствующих критерию.
git rm dirname/*.html
#git #doc #cheatsheet
Please open Telegram to view this post
VIEW IN TELEGRAM
👍104🔥19❤9😱2
[PYTHON:TODAY]
11. Переименование файлов
Переименовать файл или папку можно параметром
mv
. Для него указывается источник source
и назначение destination
. Источник — реально существующий файл или папка, а назначение — существующая папка.git mv dir1/somefile.js dir2
При выполнении команды файл или папка, указанные как источник, будут перемещены в папку назначения. Индекс будет обновлён соответственно, но изменения нужно записать.
12. Отмена подготовленных и неподготовленных изменений
Восстановить файлы рабочего дерева, не подготовленные к коммиту, можно параметром checkout. Для проведения операции требуется указать путь к файлу. Если путь не указан, параметр
git checkout
изменит указатель HEAD, чтобы задать указанную ветку как текущую.git checkout somefile.js
Восстановить подготовленный файл рабочего дерева можно параметром
reset
. Потребуется указать путь к файлу, чтобы убрать его из области подготовленных файлов. При этом не будет производиться откат никаких изменений или модификаций — однако файл перейдёт в категорию не подготовленных к коммиту.git reset HEAD somefile.js
Если нужно выполнить это действие для всех подготовленных файлов, путь к ним указывать не надо.
git reset HEAD
13. Изменение последнего коммита
Внести изменения в последний коммит можно параметром commit с флагом
--amend
. Например, вы записали изменения, внесённые в ряд файлов, и поняли, что допустили ошибку в сообщении коммита. В этом случае можете воспользоваться указанной командой, чтобы отредактировать сообщение предыдущего коммита, не изменяя его снимок.git commit --amend -m "Updated message for the previous commit"
Также можно вносить изменения в файлы, отправленные ранее. Например, вы изменили несколько файлов в ряде папок и хотите их записать как единый снимок, но забыли добавить в коммит одну из папок. Чтобы исправить такую ошибку, достаточно подготовить для фиксации остальные файлы и папки и создать коммит с флагами
--amend
и --no-edit
.git add dir1
git commit
# Here you forgot to add dir2 to commit, you can execute the
following command to amend the other files and folders.
git add dir2
git commit --amend --no-edit
Флаг
--no-edit
позволит внести в коммит поправку без изменения сообщения коммита. В этом случае итоговый коммит заменит неполный, а выглядеть это будет так, как будто мы отправили изменения ко всем файлам в нужных папках как единый снимок.⚠️ Внимание! Не изменяйте публичные коммиты.
С помощью amend прекрасно исправляются локальные коммиты, а исправления можно передать в общий репозиторий. Однако изменять коммиты, уже доступные другим пользователям, не следует. Помните, что изменённые коммиты являются совершенно новыми, а предыдущий коммит уже не будет доступен в текущей ветке. Последствия будут такими же, как при отмене изменений публичного снимка.
14. Откат последнего коммита
Откатить последний коммит можно с помощью параметра revert. Создастся новый коммит, содержащий обратные преобразования относительно предыдущего, и добавится к истории текущей ветки.
git revert HEAD
Разница между revert и reset
Команда
git revert
отменяет изменения, записанные только одним коммитом. Она не откатывает проект к более раннему состоянию, удаляя все последующие коммиты, как это делает команда git reset
.У команды
revert
есть два крупных преимущества по сравнению с reset
. Во-первых, она не меняет историю проекта и производит операцию, безопасную для коммитов. Во-вторых, её объектом выступает конкретный коммит, созданный в любой момент истории, а git reset
всегда берёт за точку отсчёта текущий коммит. К примеру, если нужно отменить старый коммит с помощью git reset
, придётся удалить все коммиты, поданные после целевого, а затем выполнить их повторно. Следовательно, команда git revert
— гораздо более удобный и безопасный способ отмены изменений.#doc #git #cheatsheet
Please open Telegram to view this post
VIEW IN TELEGRAM
👍48❤13🔥5🫡1
#doc #cheatsheet #git #russian
Please open Telegram to view this post
VIEW IN TELEGRAM
👍50🔥6❤5
echo "# название" >> README.md
- создание файла README.mdgit init
- инициализация репозиторияgit add README.md
- добавления файла README.md в проектgit commit -m "first commit"
- получает проиндексированный снимок состояния и выполняет его коммит в историю проектаgit remote add origin https://github.com/stanruss/название.git
- команда, которой устанавливается подключение к удаленному серверу и git репозиторию, размещающемуся на нем.git push -u origin master
- кзменения отправляются на удаленный серверgit log --oneline
- посмотреть все коммиты.git checkout .
- восстановить все.git checkout "код коммита"
- вернуть до состояния этого коммита.git checkout master
- вернуться в ветку мастер.Восстановить файлы на локальном компьютере:
git fetch --all
git reset --hard origin/master или git reset --hard origin/<название_ветки>
git add text.txt
- Добавить файл в репозиторийgit rm text.txt
- Удалить файлgit status
- Текущее состояние репозитория (изменения, неразрешенные конфликты и тп)git commit -a -m "Commit description"
- Сделать коммитgit push origin
- Замерджить все ветки локального репозитория на удаленный репозиторий git push origin master
- Аналогично предыдущему, но делается пуш только ветки mastergit push origin HEAD
- Запушить текущую ветку, не вводя целиком ее названиеgit pull origin
- Замерджить все ветки с удаленного репозиторияgit pull origin master
- Аналогично предыдущему, но накатывается только ветка mastergit pull origin HEAD
- Накатить текущую ветку, не вводя ее длинное имяgit fetch origin
- Скачать все ветки с origin, но не мерджить их в локальный репозиторийgit fetch origin master
- Аналогично предыдущему, но только для одной заданной веткиgit checkout -b some_branch origin/some_branch
- Начать работать с веткой some_branch (уже существующей)git branch some_branch
- Создать новый бранч (ответвится от текущего)git checkout some_branch
- Переключиться на другую ветку (из тех, с которыми уже работаем)git branch
# звездочкой отмечена текущая ветвь - Получаем список веток, с которыми работаемgit branch -a # | grep something
- Просмотреть все существующие ветвиgit merge some_branch
- Замерджить some_branch в текущую веткуgit branch -d some_branch
- Удалить бранч (после мерджа)git branch -D some_branch
- Просто удалить бранч (тупиковая ветвь)git show d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4
- Изменения, сделанные в заданном коммитеgit push origin :branch-name
- Удалить бранч из репозитория на сервереgit reset --hard d8578edf8458ce06fbc5bb76a58c5ca4a58c5ca4
- Откатиться к конкретному коммиту и удалить последующие (хэш смотрим в «git log»)git push -f
- Залить на сервер измененные коммитыgit clean -f
- Удаление untracked files#git #github #doc #cheatsheet
Please open Telegram to view this post
VIEW IN TELEGRAM
👍100🔥22❤4
This media is not supported in your browser
VIEW IN TELEGRAM
Изложены основы Git: установка, графический интерфейс и командная строка, локальные репозитории и коммиты, ветки и слияния. Рассмотрены хостинговые сервисы и аутентификация, работа с удаленным репозиторием, клонирование и локальное сохранение. Подробно рассмотрены трехсторонние слияния, конфликты слияния, запросы на слияние, а также интеграция изменений из одной ветки в другую с помощью перебазирования.
Для закрепления материала служат два сквозных проекта: учебный, демонстрирующий основы, и практический, применимый для реальной работы.
Год: 2024
#git
Please open Telegram to view this post
VIEW IN TELEGRAM
👍46❤4🔥2
Создание репозитория:
-
git init [project_name]
— создать новый локальный репозиторий.-
git clone [url]
— создание копии (удаленного) репозитория.Изменения:
-
git add [file]
— индексировать файл, готовый к коммиту.-
git add .
— индексировать все файлы, готовые к коммиту.-
git commit -m "commit message"
— зафиксировать индексированные файлы с комментарием.-
git commit -am "commit message"
— зафиксировать все отслеживаемые файлы с комментарием.-
git reset [file]
— откат изменений до определенного коммита.-
git reset --hard
— вернуть дерево проекта и индекс в состояние, соответствующее указанному коммиту, удалив изменения последующих коммитов.Отслеживание репозитория:
-
git status
— список новых или измененных файлов, которые еще не закоммитены.-
git diff
— показать изменения, не внесенные в индекс.-
git diff --cached
— изменения, внесенные в индекс.-
git diff HEAD
— показать все индексированные и неиндексированные изменения файлов.-
git diff commit1 commit2
— показать различия между двумя коммитами.-
git blame [file]
— показать дату изменения и автора для данного файла.-
git show [commit]:[file]
- показать изменения для определенного коммита или файла.-
git log
— показать полную историю изменений.-
git log -p [file/directory]
— показать историю изменений для файла/папки, включая различия (diffs).Работа с ветками:
-
git branch
— показать все локальные ветки.-
git branch -av
— показать все локальные и удаленные ветки.-
git checkout my_branch
— переключиться на ветку my_branch.-
git branch new_branch
— создание новой ветки new_branch.-
git branch -d my_branch
— удалить ветку my_branch.-
git checkout branch_b
/ git merge branch_a
— объединить branch_b и branch_a.-
git tag my_tag
— добавить тег к текущему коммиту.-
git tag -a my_tag -m "commit"
— создать тег с комментарием.Синхронизация:
-
git fetch
— получить последние изменения с удаленного сервера без слияния.-
git pull
— получить последние изменения с удаленного сервера и выполнить слияние.-
git pull --rebase
— получить последние изменения с удаленного сервера и перебазировать.-
git push
— применить локальные изменения на удаленный сервер.-
git help
— показать справочную информацию о Git..gitignore — объясняем Git, какие файлы следует игнорировать.
#git #cheatsheet #doc
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍74🔥12❤8
#doc #cheatsheet #python #git
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41🔥8❤3
Forwarded from Linux для чайника
Виртуальные лаборатории, где пользователи могут безопасно экспериментировать с командами и сценариями конфигурации, укрепляя навыки DevOps и облачных технологий.
Лаборатории бесплатны и ориентированы на обучение через практику
#soft #python #docker #git #linux
Please open Telegram to view this post
VIEW IN TELEGRAM
👍66🔥17❤2
Как подружиться с Git без боли и тупежа. В статье по полочкам: как создать репозиторий, прописать имя и почту, закинуть файлы под контроль и бахнуть первый коммит.
#doc #article #github #git
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥9🤯3❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Это не просто сайт, а мегахранилище шпаргалок по самым разным темам:
Сохраняем в закладки как must-have-инструмент
#cheatsheet #python #github #git #soft
Please open Telegram to view this post
VIEW IN TELEGRAM
👍55🔥21❤5🫡1
#git #cheatsheet
Please open Telegram to view this post
VIEW IN TELEGRAM
👍75🔥18🫡5❤3