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 также поддерживает мощные инструменты ветвления и слияния.

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

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7💯1
🛑 Операция git pull используется для обновления локального репозитория последними изменениями из удалённого репозитория. Она сочетает в себе две команды: git fetch и git merge.

🛑 Сначала git fetch загружает изменения из удалённого репозитория, а затем git merge объединяет эти изменения с текущей веткой.

git pull origin main


🛑 Эта команда обновляет локальную ветку main последними изменениями из удалённой ветки main на сервере origin.

🛑 Использование git pull помогает поддерживать локальный репозиторий в актуальном состоянии.

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

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍102
Git-flow — это модель ветвления для Git, которая упрощает управление разработкой и релизами в проектах. Она включает в себя использование основных веток, таких как main и dev, а также временных веток для новых фич, что помогает структурировать и автоматизировать процесс разработки.

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62
❗️ Команда git init используется для инициализации нового репозитория Git в текущей директории. Она создает скрытую папку .git, которая содержит все необходимые файлы для управления версиями проекта. Это первый шаг при создании нового репозитория или при переносе существующего проекта под контроль версий Git.

# Инициализация нового репозитория
git init


😊 После выполнения этой команды директория становится репозиторием Git, и можно начинать отслеживать изменения в файлах, добавлять коммиты и выполнять другие операции.

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

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥1
🖇 Rebase — это процесс переноса или объединения последовательности коммитов на новую базу. Он используется для упрощения истории коммитов и устранения конфликтов. Основные шаги:

1⃣ Перемещение коммитов: текущая ветка перемещается на вершину другой ветки.
2⃣ Применение коммитов: каждый коммит из текущей ветки повторно применяется на новой базе.


git checkout feature-branch
git rebase main


✔️ Rebase делает историю линейной, что упрощает её чтение. Однако, его следует использовать с осторожностью, так как он изменяет историю коммитов.

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

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

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1
🍒 git cherry-pick — это команда, которая позволяет выбрать один или несколько коммитов из одной ветки и применить их в другую ветку. Это полезно, когда необходимо перенести конкретные изменения без слияния всех изменений из исходной ветки.


# Переключение на целевую ветку
git checkout target-branch

# Применение коммита с указанным хешем
git cherry-pick <commit-hash>


В случае конфликтов, их нужно разрешить вручную, после чего завершить процесс с помощью git cherry-pick --continue.

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

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

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3
Добавление файлов в репозиторий включает несколько шагов. Сначала необходимо убедиться, что рабочая директория актуальна, выполнив команду git pull. Затем новые или измененные файлы добавляются в индекс с помощью команды git add. Для добавления всех изменений можно использовать git add ..

# Добавление всех изменений в индекс
git add .


После этого создается коммит с описанием изменений:

# Создание коммита с сообщением
git commit -m "Описание изменений"


Наконец, изменения отправляются в удаленный репозиторий с помощью команды git push.

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

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
🔽 git pull объединяет команды git fetch и git merge, загружая изменения из удаленного репозитория и автоматически сливая их с текущей веткой. git fetch только загружает изменения, не изменяя локальную рабочую копию, что позволяет просмотреть изменения перед их слиянием.

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

Основные команды для работы с REMOTE:

▶️ git remote add <name> <url>: добавляет новый удаленный репозиторий.
▶️ git remote -v: отображает список удаленных репозиториев.
▶️ git fetch <remote>: загружает изменения из удаленного репозитория без слияния.
▶️ git pull <remote>: загружает и сливает изменения из удаленного репозитория.
▶️ git push <remote> <branch>: отправляет изменения в удаленный репозиторий.

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

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍61
Для удаления локальной ветки используется команда git branch -d <branch_name>, которая удаляет ветку, если она уже слита. Для принудительного удаления, даже если ветка не слита, используется git branch -D <branch_name>.

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥1
👉 GitHub Actions — это платформа для автоматизации рабочих процессов, интегрированная в GitHub. Она позволяет создавать, управлять и выполнять CI/CD процессы непосредственно в репозитории.

Рабочие процессы определяются в файлах YAML, которые хранятся в директории .github/workflows.

Пример простого рабочего процесса:


name: CI

on: [push]

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Set up Node.js
uses: actions/setup-node@v2
with:
node-version: '14'
- run: npm install
- run: npm test


Этот пример запускает тесты при каждом push в репозиторий.

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

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥1
Для удаления файла из индекса используется команда git rm --cached <имя_файла>, которая удаляет файл из индекса, но сохраняет его в рабочей директории. Это позволяет исключить файл из следующего коммита, не удаляя его.

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍71
🔽 Откатить коммит можно несколькими способами в зависимости от ситуации и необходимости сохранить изменения.

Для отмены последнего коммита, сохраняя изменения в рабочей директории:
git reset --soft HEAD~1
# Откатывает последний коммит, оставляя изменения в индексе


Для полного удаления изменений:
git reset --hard HEAD~1
# Полностью удаляет последний коммит и изменения


Если коммит уже отправлен в удалённый репозиторий, лучше использовать git revert:
git revert <commit_hash>
# Создаёт новый коммит, отменяющий изменения указанного коммита


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

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2
Для получения обновлений из удаленного репозитория используется команда git fetch, которая загружает изменения, но не сливает их с локальной веткой. Чтобы объединить изменения с текущей веткой, после git fetch необходимо выполнить git merge, либо использовать git pull, который автоматически выполняет обе операции.

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

▶️ Для решения конфликтов необходимо вручную отредактировать конфликтующие файлы, выбрав нужные изменения. После этого нужно отметить конфликт как решенный с помощью команд:

# Добавить исправленный файл в индекс
git add <filename>

# Завершить слияние
git commit


✔️ Конфликты при слиянии требуют внимательного анализа, чтобы сохранить целостность кода и избежать потери данных.

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

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

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

git blame filename


▶️ Этот запрос покажет информацию об авторе, коммите и дате для каждой строки в filename.

▶️ Для более детального анализа можно использовать опции, например, -L для ограничения диапазона строк. Команда ниже покажет авторов строк с 10 по 20.

git blame -L 10,20 filename


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

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
Для переключения на другую ветку используется команда git checkout <имя_ветки>, которая позволяет перейти на указанную ветку и обновить рабочую директорию. В более новых версиях Git рекомендуется использовать git switch <имя_ветки> для выполнения той же задачи.

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6💯2
git log — это команда для просмотра истории коммитов в репозитории. Она отображает список коммитов с их хешами, авторами, датами и сообщениями.

Основные параметры:

1️⃣ --oneline: выводит каждый коммит в одну строку, сокращая хеш и отображая только сообщение.

2️⃣ --graph: визуализирует ветвление и слияние в виде графа.

3️⃣ --author: фильтрует коммиты по автору.

git log --author="John Doe"


4️⃣ --since и --until: ограничивают коммиты по дате.

git log --since="2 weeks ago"


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

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