[Программирование, Git, GitHub] Git — Быстрый старт
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Мы ежедневно работаем с системой контроля версий, как правило, это Git. Система контроля версий позволяет организовать совместную работу над проектом и отслеживать вносимые изменения, при этом мы можем выполнить откат к предыдущей версии, если потребуется.Новички быстро осваивают Git и начинают использовать его в работе. Но иногда может потребоваться откатится к предыдущей версии и сделать это нужно правильно. Эта задача нередко ставит новичков в тупик.Чтобы начать работу с системой контроля версий Git вам необходимо создать репозиторий на GitHub или GitLab.Необходимо клонировать созданный репозиторий. В результате у вас будет локальная копия (Local Repository) удалённого репозитория (Remote Repository), как на схеме выше.
git clone https://github.com/<your_user_name>/<repo_name>
Важно понимать, что когда вы работаете над проектом все изменения по-прежнему хранятся только в рабочем каталоге (Working Directory). Чтобы Git начал отслеживать состояние файлов необходимо добавить их в индекс (Staging).Команда добавляет указанный файл в индекс:
git add <file-name>
Можно сразу добавить все файлы в индекс:
git add .
Можно проверить, что файлы действительно добавлены в индекс:
git status
Но все изменения, которые мы сделали по-прежнему, хранятся только в рабочем каталоге. Чтобы сохранить изменения в Git, нужно их зафиксировать, создав коммит.Старайтесь снабжать коммиты информативными комментариями, это поможет вам быстро находить необходимые коммиты.
git commit -m "<comment>"
Посмотреть содержимое последнего коммита
git show HEAD
HEAD - это hash последнего коммита.Чтобы отобразить последние изменения в рабочем каталоге, которые ещё не включены в коммит, выполните команду:
git diff
Вы также можете посмотреть историю коммитов в данной ветке.
git log
Вывод команды git log содержит хэш коммитов. Вы можете использовать хэш коммитов вместе с командами git show и git diff, чтобы получить информацию о любом коммите, а также сравнить два коммита между собой.Утилита git достаточно информативна, но рекомендую попробовать утилиту tig, работать с ней ещё удобнее.Теперь наш локальный репозиторий содержит информацию об изменениях, осталось обновить информацию в удалённом репозитории. Сделать это не сложно:
git push
Ваши коллеги, работающие над проектом, точно так же могут сохранять изменения в удалённый репозиторий. Вы всегда можете загрузить последние изменения из удаленного репозитория, чтобы работать с последней версией файлов:
git pull
Если вы регулярно используете Git в своей работе, то, скорее всего, описанные команды вам знакомы и вы пользуетесь ими регулярно. Но как быть, если нужно откатить состояние на определённый коммит? С этим порой возникают проблемы. Хотя ничего сложного в этом нет, сейчас разберёмся.Предположим, возникла ситуация, когда в ходе работы над проектом вы поняли, что последние коммиты не нужны, например, была допущена ошибка в первом из них. Мы можем указать, на какой коммит нужно откатиться, и все коммиты, созданные после него будут удалены. Для примера откатимся на 2 коммита назад:
git reset HEAD~2
Также можно откатится на определённый коммит, указав его хэш:
git reset <commit_hash>
Учтите, что будут удалены только коммиты, содержимое файлов в рабочем каталоге при этом не изменится. Чтобы удалить эти файлы, выполните команду:
git checkout .
Можно также откатить изменения в определенном файле:
git checkout <file_name>
Но так как файлы будут удалены безвозвратно, лучше предварительно выполнить команду git status, чтобы убедиться, что эти файлы больше не нужны.Обратите внимание, что у команды git reset есть три режима работы:
- soft - HEAD будет указывать на коммит, который вы указали в команде. При этом индекс не меняется.
- mixed (default) - HEAD также будет указывать на коммит, который вы указали в команде. Но изменения, связанные с удалёнными коммитами, будут удалены из индекса. Если выполнить команду git commit, то ничего не произойдёт.
- hard - повторят эффект mixed, но также изменит файлы в вашем рабочем каталоге.
Таким образом, вы можете использовать флаг --hard вместо команды git checkout.Внести указанные изменения вы можете, если изменения ещё не отправлены в удалённый репозиторий.Так же есть возможность отредактировать последний коммит не удаляя его. Например, вы сделали коммит преждевременно. В этом случае его можно исправить.После того, как вы внесёте дополнительные изменения в рабочий каталог, добавьте их в раздел проиндексированных файлов с помощью команды git add, потом выполните команду:
git commit --amend
При этом Git откроет редактор, где вы сможете изменить комментарий этого коммита. Все зафиксированные изменения будут добавлены в отредактированный коммит.Если изменения уже отправлены в удалённый репозиторий, можно создать новый коммит, который будет содержать обратные изменения. Таким образом, можно откатить несколько коммитов.
git revert <commit_hash>
Команду git revert можно также использовать с HEAD, если нам нужно отменить последний коммит.Обратите внимание на ещё одну команду git restore, которая помогает отменить незафиксированные локальные изменения. Эту команду можно использовать для отмены действий команды git add, чтобы убрать из индекса файлы, которые вы добавили ранее.
git restore --staged <file>
Также эту команду можно использовать для отмены локальных изменений в файле, тем самым восстанавливая его последнее зафиксированное состояние:
git restore <file>
Вы также можете восстановить состояние файла на определённый коммит.
Подписывайтесь на наш телеграм-канал Mops DevOps, чтобы не пропустить лучшие статьи, видео и митапы!
===========
Источник:
habr.com
===========
Похожие новости:
- [PHP, Программирование, Анализ и проектирование систем] Модульный PHP монолит: рецепт приготовления
- [Программирование, Компьютерное железо, Процессоры] Обнаружены незадокументированные опкоды в системе инструкций процессора x86 (перевод)
- [JavaScript, Программирование, Интернет вещей] Пять причин выбрать JavaScript для IoT-проекта (перевод)
- [Программирование, Java, .NET, Карьера в IT-индустрии] Путь казахстанского разработчика: как я пришел к Java
- [Системное администрирование, Системное программирование, Сетевые технологии, API] Как использовать REST и SOAP API в Zimbra OSE
- [Программирование, C++, IT-стандарты] Стандарт C++20: обзор новых возможностей C++. Часть 5 «Корутины»
- [Параллельное программирование, Конференции, Распределённые системы] Обзор программы Hydra 2021: введение в хардкор
- [Конференции, Научно-популярное, IT-компании] На ринг выходят IT-тяжеловесы из GlobalLogic, Parimatch Tech, ISAC, SHALB и HealthJoy: в Киеве пройдет DevOps баттл
- [Функциональное программирование] Другая сторона медали или про недостатки юнит-тестирования
- [Системное администрирование, Программирование, Виртуализация, DevOps] Знакомство с Docker (перевод)
Теги для поиска: #_programmirovanie (Программирование), #_git, #_github, #_git, #_gitlab, #_github, #_development, #_developer, #_developing, #_devops, #_devtools, #_developer_tools, #_programmirovanie (программирование), #_programmirovanie (
Программирование
), #_git, #_github
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 15:41
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Мы ежедневно работаем с системой контроля версий, как правило, это Git. Система контроля версий позволяет организовать совместную работу над проектом и отслеживать вносимые изменения, при этом мы можем выполнить откат к предыдущей версии, если потребуется.Новички быстро осваивают Git и начинают использовать его в работе. Но иногда может потребоваться откатится к предыдущей версии и сделать это нужно правильно. Эта задача нередко ставит новичков в тупик.Чтобы начать работу с системой контроля версий Git вам необходимо создать репозиторий на GitHub или GitLab.Необходимо клонировать созданный репозиторий. В результате у вас будет локальная копия (Local Repository) удалённого репозитория (Remote Repository), как на схеме выше. git clone https://github.com/<your_user_name>/<repo_name>
git add <file-name>
git add .
git status
git commit -m "<comment>"
git show HEAD
git diff
git log
git push
git pull
git reset HEAD~2
git reset <commit_hash>
git checkout .
git checkout <file_name>
git commit --amend
git revert <commit_hash>
git restore --staged <file>
git restore <file>
Подписывайтесь на наш телеграм-канал Mops DevOps, чтобы не пропустить лучшие статьи, видео и митапы!
=========== Источник: habr.com =========== Похожие новости:
Программирование ), #_git, #_github |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 15:41
Часовой пояс: UTC + 5