React Frontend | YeaHub
3.13K subscribers
242 photos
3 videos
1 file
446 links
Теория, подготовка к интервью и курсы для React разработчиков

YeaHub — это платформа для IT-специалистов, объединяющая обучение, карьерный рост, развитие и сообщество единомышленников.

Платформа: https://yeahub.ru

Для связи: @ruslan_kuyanets
Download Telegram
#tech #git #commit

Какой командой можно изменить предыдущий коммит?
Anonymous Quiz
18%
git commit --modify
38%
git commit --amend
12%
git commit --fix
12%
git commit --restore
20%
ни одним из перечисленных
👍9🔥52🏆2
#git
В чем разница между git merge и git rebase?

Уровень: 4️⃣

Git Merge: Создает новый коммит слияния для объединения изменений из разных веток, сохраняя историю ветвлений.

Git Rebase: Переносит ваши коммиты поверх целевой ветки, создавая линейную историю коммитов.

Ресурсы для изучения:
📄Статья
📹YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥4🏆21
#git
Что такое Git Flow?

Уровень: 4️⃣

Git Flow - это модель ветвления для Git. Она предлагает структурированный подход к управлению ветками в репозитории Git, определяя определенные типы веток (например, master, develop, feature, hotfix, release) и правила их использования.

Ресурсы для изучения:
📄 Статья
📱 YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍2🏆2
#git
Что такое Trunk Based Development?

Уровень: 7️⃣

Trunk Based Development - это подход к разработке программного обеспечения, где разработчики работают непосредственно с основной ("trunk") веткой (обычно называемой "master" или "main"), вместо создания и длительного поддержания длительных веток.

Ресурсы для изучения:
📄 Статья
📱 YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5👍3🏆3
#git
Что делает команда git pull?

Уровень: 2️⃣

Команда git pull используется для извлечения изменений из удаленного репозитория и автоматического объединения их с локальной веткой. Она обновляет ваш локальный репозиторий до последних изменений из удаленного репозитория.

Ресурсы для изучения:
📔 Дока
📄 Статья
📱 YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍4🏆4
#git
Для чего нужна команда cherry pick?

Уровень: 5️⃣

git cherry-pick — это команда в системе контроля версий Git, которая позволяет выбирать и применять конкретные коммиты из одной ветки в другую.

Ресурсы для изучения:
📔 Дока
📄 Статья
📱 YouTube
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥7👍5🏆2
#tech #git

Каким образом при работе с git-репозиторием можно подгрузить в свою ветку изменения из другой ветки?

Уровень: 3️⃣

Давайте для наглядности назовем целевую ветку feature-branch, а ту, с которой нужно забрать изменения, main. И го в комментарии, ответ не сложный 🙂

Ресурсы для изучения:
📔Дока
Please open Telegram to view this post
VIEW IN TELEGRAM
👍134🔥3
#basic #git
Для чего используется команда git blame?

Уровень: 4️⃣


Команда `git blame` используется для определения того, кто и когда изменил каждую строку в файле.

Ресурсы для изучения:
📄 Статья
📱 Видео
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11🔥1
#basic #git
git gherry-pick: Что это и когда использовать?

Уровень: 4️⃣

Cherry-pick позволяет взять конкретный коммит из любой ветки и применить его к текущей ветке.

Ресурсы для изучения:
📔Дока
📄Статья
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥3🏆1
#git

🐱 Опишите шаги выгрузки новых изменений в удаленный репозиторий git


1️⃣ Добавление файлов в индекс

Команда git add подготавливает файлы к фиксации:
# Добавить конкретный файл
git add index.html

# Добавить все измененные файлы
git add .



2️⃣ Фиксация изменений

Команда git commit сохраняет изменения в локальный репозиторий
git commit -m "Add product benefits section"

❗️ Сообщение коммита должно быть информативным и описывать внесенные изменения


3️⃣ Отправка в удаленный репозиторий (push)

Команда git push отправляет изменения в удаленное хранилище
git push origin main



🔄 Эта последовательность действий повторяется при каждой синхронизации локальных изменений с удаленным репозиторием


Ресурсы для изучения:

📖 Статья

📹 Видео

💬 Новости

🎓 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
#git

Что такое рабочий процесс Gitflow?

Gitflow — это модель работы с Git, которая структурирует процесс разработки через использование различных веток.


Основные ветки в Gitflow:

1. main — основная стабильная ветка, содержит готовые к релизу версии.
2. develop — ветка для разработки, сюда сливаются все новые фичи.
3. feature/ — ветки для разработки новых фич, создаются от develop и сливаются обратно после завершения.
4. release/ — ветки для подготовки к релизу, в которых исправляются баги и тестируются изменения.
5. hotfix/ — ветки для срочных исправлений ошибок в продакшне.


Как работает:

1. Разработка фичи: создается ветка feature, после завершения сливается в develop.

2. Подготовка релиза: создается ветка release, которая сливается в main и develop.

3. Горячие исправления: если в main обнаружен баг, создается ветка hotfix, которая сливается в main и develop.


Преимущества:

- Четкое разделение задач и этапов разработки.
- Легкость в управлении версиями и релизами.
- Удобство в исправлении багов без риска для стабильности.


Gitflow подходит для крупных проектов с несколькими параллельными ветками разработки и регулярными релизами.

Ресурсы для изучения:

📹 Видео

➡️ Вопрос

💬 Новости

🎓 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🔥5
#git

👩‍💻 Как вы разрешаете конфликты в Git?

Конфликты возникают, когда Git не может автоматически объединить изменения. Пример: вы и ваш коллега изменили одну и ту же строку в файле.


Шаги для разрешения конфликта:

1. Выполните git pull. Если возникает конфликт, Git остановится и покажет, в каких файлах проблема.

2. Откройте конфликтующие файлы. Вы увидите метки, которые указывают конфликтующие части:

<<<<<<< HEAD
console.log("Моя версия");
=======
console.log("Версия коллеги");
>>>>>>> origin/main


3. Отредактируйте файл, удаляя метки и выбирая правильную версию.

4. Сохраните изменения и добавьте файл в индекс: git add <имя_файла>

5. Завершите процесс с помощью git commit.


⭐️ Совет: используйте инструменты для разрешения конфликтов, например, встроенные редакторы в VS Code или специализированные программы (Sourcetree, GitKraken).


Ресурсы для изучения:

➡️ Вопрос

💬 Новости

🎓 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍82
#git

🖥 Как отменить коммит, который уже был отправлен и обнародован?

Когда коммит уже был отправлен на удалённый репозиторий (например, с помощью git push), его нельзя удалить без риска повредить историю, особенно если другие разработчики уже могли его скачать. Вместо этого используется команда git revert, которая создаёт новый коммит, отменяющий изменения.

🔵Команда git revert <commit_hash> создаёт новый коммит, который инвертирует изменение, сделанное в указанном коммите. Пример:

git revert abc1234
git push origin main


Это безопасно, потому что отменяется только результат коммита, а сама история сохраняется.


🔵Использование git reset для локальных изменений:

Если коммит ещё не был отправлен на репозиторий, можно использовать git reset. Но если коммит уже отправлен и опубликован, лучше использовать git revert, чтобы избежать конфликтов с другими участниками проекта.


Ресурсы для изучения:

➡️ Вопрос

💬 Новости

🎓 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍142
#git

🖥 Что делает команда git stash?

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


Когда это полезно?

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

В этот момент у вас есть несколько вариантов:
- Создать коммит с незавершенной работой (не идеально)
- Потерять все изменения, начав с чистого листа (плохо)
- Использовать git stash (отлично!)



Как это работает?

1. Сохранение: Когда вы запускаете команду stash, Git берет все ваши изменения, сохраняет их в специальном месте и возвращает рабочую директорию в чистое состояние последнего коммита.

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

3. Восстановление: После решения срочной задачи вы можете вернуться к своей исходной ветке и достать сохраненные изменения из stash с помощью git stash apply.


Знаете про него? Используете в работе?


Ресурсы для изучения:

➡️ Вопрос

💬 Новости

🎓 Платформа
Please open Telegram to view this post
VIEW IN TELEGRAM
👍216
#git

Как найти проблемный коммит после операции слияния?

После слияния с веткой могут возникнуть проблемы, и нужно понять, какой коммит вызвал ошибку. Для этого помогает инструмент git bisect, который выполняет бинарный поиск по истории коммитов, постепенно сокращая диапазон возможных нарушителей.


Инструкция:

1️⃣ Инициализируйте бинарный поиск: git bisect start


2️⃣ Укажите хороший коммит (где все работало) и плохой коммит (где возникла ошибка):

git bisect good <good_commit_hash>
git bisect bad <bad_commit_hash>


3️⃣ Git будет поочередно переключаться на коммиты между хорошим и плохим состоянием. После каждого переключения проверьте, возникает ли ошибка, и укажите результат:

git bisect good # если в текущем коммите ошибки нет

или

git bisect bad # если в текущем коммите ошибка присутствует

4️⃣ После нахождения проблемного коммита: git bisect reset


Поиск через редактор

VS Code
- View → SCM (или Source Control)
- Вкладка Timeline в редакторе покажет изменения файла по коммитам
- Расширение GitLens даёт удобную навигацию по истории изменений

WebStorm/IntelliJ IDEA
- VCS → Git → Show History
- Annotate with Git Blame (покажет, какой коммит изменил строку)


➡️ Вопрос

💬 Новости

🎓 База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥31
#git

🚩Что такое команды git reset -mixed и git
merge -abort?



1️⃣git reset --mixed

Описание:

Эта команда отменяет добавление файлов в индекс (`git add`), но сохраняет изменения в рабочем каталоге. Полезно, когда нужно убрать файлы из индекса, не теряя сами изменения.

Пример:


git reset --mixed


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


2️⃣git merge --abort

Описание:

Используется для отмены слияния, если возникли конфликты или если вы решили не продолжать процесс. Возвращает репозиторий в состояние до начала слияния, отменяя все изменения, связанные с ним.

Пример:


git merge --abort


Отменяет слияние и восстанавливает состояние репозитория до его начала.


Вывод:
- git reset --mixed помогает управлять индексом, удаляя файлы из него, но сохраняя изменения.
- git merge --abort используется для прерывания слияния и отката к предыдущему состоянию.

⬜️

🔎🔎🔎🔎🔄

#️⃣Вопрос

#️⃣Новости

#️⃣База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥1
#git

🚩 Какие различные стратегии ветвления вы
знаете?



1️⃣ Centralized Workflow

- Одна основная ветка — обычно main.
- Все разработчики коммитят в неё напрямую.
- Подходит для небольших команд и простых проектов.

Плюсы:
Простота
Нет конфликтов между ветками

Минусы:
Отсутствие изоляции фич
Возможны нестабильности из-за прямых коммитов



2️⃣ Feature Branching Workflow

- Для каждой новой фичи создаётся отдельная ветка от main.
- После завершения фича вливается обратно в main через pull/merge request.

Плюсы:
Изоляция фич
Возможность ревью
Удобно для командной работы

Минусы:
Требует больше внимания к слиянию
Возможны конфликты при долгом ветвлении



3️⃣ Gitflow Workflow

- Основные ветки: main, develop.
- Вспомогательные: feature/*, release/*, hotfix/*.

Процесс:
- Разработка — в develop.
- Новые фичи — в feature/*.
- Подготовка релиза — в release/*.
- Исправления багов — в hotfix/*.

Плюсы:
Чёткое разделение ролей веток
Подходит для крупных проектов

Минусы:
Сложная структура
Не всегда подходит для CI/CD и DevOps-подходов



4️⃣ Forking Workflow

- Каждый разработчик форкает репозиторий и работает в своей копии.
- После завершения работы — отправляет Pull Request в оригинальный репозиторий.

Чаще всего используется в open-source проектах.

Плюсы:
Безопасность и изоляция
Подходит для внешних контрибьюторов

Минусы:
Менее удобно для командной разработки в рамках одной компании
Требует контроля доступа и модерации PR



🔎🔎🔎🔎🔄

#️⃣Вопрос

#️⃣Новости

#️⃣База вопросов
Please open Telegram to view this post
VIEW IN TELEGRAM
👍83