Git собеседования – Telegram
Git собеседования
612 subscribers
98 photos
183 links
Подготовка к собеседованиям в IT

Еще больше разобранных вопросов для подготовки на сайте https://frontview-it.ru

Frontend - @frontview_it
Backend - @frontview_backend
Все IT вакансии - @frontview_all_vacancies
Download Telegram
🗑 Удаление ветки в Git может быть выполнено локально и удаленно.

Для удаления локальной ветки используется команда:


git branch -d branch_name


Если ветка не слита, и требуется принудительное удаление, нужно использовать:


git branch -D branch_name


Для удаления удаленной ветки применяется:


git push origin --delete branch_name


Эта команда удаляет ветку из удаленного репозитория.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
Защита основной ветки достигается путем настройки правил защиты ветки, которые могут включать запрет на прямые коммиты и требование прохождения код-ревью перед слиянием. Эти меры помогают предотвратить случайные изменения и обеспечивают контроль качества кода перед его добавлением в основную ветку.

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3
🔵Git Flow — это модель ветвления, которая упрощает управление разработкой и выпуском программного обеспечения. Она определяет строгие правила для создания и слияния веток, обеспечивая организованный процесс разработки.

🔵Основные ветки включают main для стабильных релизов и develop для интеграции новых фич. Временные ветки, такие как feature, release и hotfix, используются для разработки новых фич, подготовки релизов и исправления багов соответственно. Git Flow помогает поддерживать чистоту и структуру в репозитории.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Клонирование существующего репозитория осуществляется с помощью команды git clone, за которой следует URL репозитория. Эта команда создает локальную копию удаленного репозитория, включая все его файлы, историю коммитов и ветки.

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Локальный репозиторий находится на компьютере разработчика и содержит полную историю изменений проекта, включая рабочие файлы и служебные данные. Удаленный репозиторий хранится на сервере и используется для совместной работы, обмена изменениями и резервного копирования кода.

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Для сравнения изменений между коммитами используется команда git diff. Она показывает разницу в файлах между двумя точками истории.

1. Сравнение дв
ух коммитов:
Чтобы увидеть изменения между двумя конкретными коммитами, нужно указать их хэши:

git diff <commit1> <commit2>


2. Сравнение с предыдущим к
оммитом:
Если нужно сравнить текущий коммит с предыдущим, можно использовать:

git diff HEAD^ HEAD


3. Сравнение с вет
кой:
Для сравнения текущей ветки с другой:

git diff branch1..branch2


Команда git diff выводит изменения построчно, показывая добавленные и удаленные строки. Это полезно для анализа истории изменений.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥2
🪅 Чтобы применить изменения из git stash, используется команда git stash apply. Она возвращает сохраненные изменения в рабочую директорию, но не удаляет их из стека. Если нужно применить и удалить изменения, используется git stash pop.

git stash apply stash@{0}


Применяет изменения из конкретного стеша (в данном случае stash@{0}).

git stash pop


Применяет изменения из последнего стеша и удаляет его из списка.

Если возникли конфликты, их нужно разрешить вручную. После применения изменений можно продолжить работу с восстановленными данными.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Тег удаляется с помощью команды git tag -d, за которой следует имя тега. Для удаления тега с удаленного репозитория используется команда git push origin --delete с указанием имени тега.

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
🔴Чтобы изменить сообщение последнего коммита, используется команда git commit --amend.

Исправление сообщения:

git commit --amend -m "Новое сообщение коммита"


Эта команда открывает редактор, где можно изменить сообщение последнего коммита. Если нужно просто заменить текст, используется флаг -m.

Важные моменты:
- Если коммит уже был отправлен в удаленный репозиторий, после изменения потребуется принудительный пуш:

git push --force


- Изменение сообщения коммита создает новый хэш, что может повлиять на историю, особенно при работе в команде.

Использовать --amend следует осторожно, чтобы избежать проблем с историей репозитория.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
git merge объединяет изменения из одной ветки в другую, создавая новый коммит слияния. git rebase перемещает коммиты одной ветки на вершину другой, переписывая историю и создавая линейную последовательность изменений.

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Для работы с несколькими удаленными репозиториями можно добавить дополнительные remote-источники. Например, чтобы добавить новый remote:


git remote add upstream https://github.com/user/repo.git


Просмотреть список всех удаленных репозиториев:


git remote -v


Для получения изменений из конкретного remote:


git fetch upstream


Чтобы отправить изменения в определенный remote:


git push origin main


Удалить ненужный remote:


git remote remove upstream


Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Чтобы проверить, действуют ли правила .gitignore, можно использовать команду git status. Если файлы, указанные в .gitignore, не отображаются в выводе, значит, правила применяются корректно. Для более детальной проверки можно использовать git check-ignore -v <file>, чтобы убедиться, что конкретный файл игнорируется.

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81
👉 Конфликты слияния возникают, когда Git не может автоматически объединить изменения из разных веток. Для их разрешения нужно вручную отредактировать конфликтующие файлы.

1. Найти конфликты: После попытки слияния Git отметит конфликтующие участки в файлах. Они выглядят так:


<<<<<<< HEAD
изменения из текущей ветки
=======
изменения из ветки, которую сливают
>>>>>>> branch-name


2. Редактировать файл: Нужно выбрать, какие изменения оставить, или объединить их вручную. Удалить маркеры <<<<<<<, =======, >>>>>>>.

3. Добавить изменения в индекс: После редактирования файл нужно добавить в индекс:


git add <имя_файла>


4. Завершить слияние: После разрешения всех конфликтов завершить слияние командой:


git commit


Если нужно отменить слияние и начать заново, используется команда git merge --abort.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
Хэш (SHA) — это уникальный идентификатор, который генерируется для каждого коммита, файла или объекта в репозитории. Он представляет собой 40-символьную строку, созданную на основе содержимого объекта, и обеспечивает целостность данных, позволяя отслеживать изменения.

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
📝 Процесс cherry-pick позволяет перенести конкретный коммит из одной ветки в другую. Это полезно, когда нужно применить изменения из одного коммита без слияния всей ветки.

1. Переключиться на целевую ветку:


git checkout target-branch


2. Выполнить cherry-pick: Указать хэш коммита, который нужно перенести:


git cherry-pick <commit-hash>


Если возникают конфликты, их нужно разрешить вручную, аналогично процессу слияния. После редактирования файлов добавить изменения в индекс и завершить cherry-pick:


git add <file>
git cherry-pick --continue


Если нужно отменить cherry-pick, используется команда git cherry-pick --abort.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
➡️ git blame используется для просмотра истории изменений конкретного файла с указанием автора и коммита, в котором была изменена каждая строка. Это помогает понять, кто и когда вносил изменения.

Пример использования:


git blame <file>


Вывод показывает:
- Хэш коммита.
- Имя автора.
- Дату изменения.
- Номер строки и её содержимое.

Для ограничения просмотра определённым диапазоном строк:


git blame -L 10,20 <file>


Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍91
Windows:
1. Скачать установщик с официального сайта: [git-scm.com](https://git-scm.com/).
2. Запустить установщик и следовать инструкциям на экране.
3. В процессе установки можно оставить настройки по умолчанию.

macOS:
1. Установить через Homebrew:

brew install git


2. Если Homebrew не установлен, можно скачать установщик с [git-scm.com](https://git-scm.com/).

Linux:
1. Для дистрибутивов на основе Debian/Ubuntu:

sudo apt update
sudo apt install git


2. Для дистрибутивов на основе Red Hat/Fedora:

sudo dnf install git


После установки проверить версию Git:

git --version


Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
GitHub Actions — это инструмент для автоматизации задач в процессе разработки, таких как тестирование, сборка и развертывание. Он позволяет создавать рабочие процессы (workflows) для интеграции и доставки (CI/CD), что упрощает проверку качества кода и ускоряет выпуск обновлений.

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
📝 git diff — команда, которая показывает различия между изменениями в рабочей директории, индексом (staging area) и коммитами. Она помогает понять, какие изменения были сделаны, но еще не зафиксированы.

Основные сценарии использования:

1. Сравнение рабочей директории и индекса:

git diff


Показывает изменения в файлах, которые еще не добавлены в индекс.

2. Сравнение индекса и последнего коммита:

git diff --cached


Отображает изменения, которые добавлены в индекс, но еще не закоммичены.

3. Сравнение между коммитами:

git diff commit1 commit2


Показывает различия между двумя коммитами.

4. Сравнение веток:

git diff branch1..branch2


Выводит различия между двумя ветками.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Для просмотра всех веток используется команда git branch. Она выводит список локальных веток, причем текущая ветка будет выделена звездочкой. Чтобы увидеть и удаленные ветки, нужно добавить флаг -a.

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
▶️ Submodule — это механизм для встраивания одного репозитория в другой как поддиректорию. Это позволяет использовать внешние проекты как часть основного, сохраняя их независимость.


git submodule add <repository-url> <path>


- <repository-url> — ссылка на внешний репозиторий.
- <path> — путь, куда submodule будет добавлен в основном проекте.

Submodule фиксируется как конкретный коммит, что обеспечивает стабильность. Для обновления submodule до последней версии:


git submodule update --remote


Submodule полезны для управления зависимостями, но требуют осторожности, так как добавляют сложность в работу с репозиторием.

Ставь 👍, если было полезно!
Больше ответов на сайте 👈

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61