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
🖇 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
Граф представляет собой структуру данных, отображающую историю коммитов в виде направленного ациклического графа, где каждый коммит указывает на один или несколько родительских коммитов. Это позволяет отслеживать изменения, слияния и ветвления, обеспечивая целостность и последовательность версий кода.

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍93
🔥 Для просмотра всех доступных веток используется команда git branch. Эта команда выводит список локальных веток в репозитории.

Чтобы увидеть все ветки, включая удалённые, используется команда:

git branch -a


Эта команда выводит как локальные, так и удалённые ветки.

Для отображения только удалённых веток используется:

git branch -r


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

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1
🔥 Создание ветки на основе другой позволяет начать работу с новой веткой, сохраняя все изменения из исходной. Для этого используется команда git checkout или git switch с флагом -b.


# Переключение на исходную ветку
git checkout main

# Создание новой ветки feature-branch на основе main
git checkout -b feature-branch

# Альтернативный способ с использованием git switch
git switch -c feature-branch


👉 Эти команды создают и переключаются на новую ветку feature-branch, основанную на текущем состоянии ветки main.

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

✈️ Git собеседования
Please open Telegram to view this post
VIEW IN TELEGRAM
👍101
При возникновении конфликта во время rebase необходимо открыть конфликтные файлы, вручную разрешить конфликты, удалив конфликтующие маркеры, и сохранить изменения. После этого следует использовать команды git add для добавления исправленных файлов и git rebase --continue для продолжения процесса rebase.

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