git stash, используется команда git stash apply. Она возвращает сохраненные изменения в рабочую директорию, но не удаляет их из стека. Если нужно применить и удалить изменения, используется git stash pop.git stash apply stash@{0}Применяет изменения из конкретного стеша (в данном случае stash@{0}).
git stash pop
Применяет изменения из последнего стеша и удаляет его из списка.
Если возникли конфликты, их нужно разрешить вручную. После применения изменений можно продолжить работу с восстановленными данными.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥2
git commit --amend. Исправление сообщения:
git commit --amend -m "Новое сообщение коммита"
Эта команда открывает редактор, где можно изменить сообщение последнего коммита. Если нужно просто заменить текст, используется флаг
-m. Важные моменты:
- Если коммит уже был отправлен в удаленный репозиторий, после изменения потребуется принудительный пуш:
git push --force
- Изменение сообщения коммита создает новый хэш, что может повлиять на историю, особенно при работе в команде.
Использовать
--amend следует осторожно, чтобы избежать проблем с историей репозитория.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Для работы с несколькими удаленными репозиториями можно добавить дополнительные remote-источники. Например, чтобы добавить новый remote:
Просмотреть список всех удаленных репозиториев:
Для получения изменений из конкретного remote:
Чтобы отправить изменения в определенный remote:
Удалить ненужный remote:
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Git собеседования
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
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1
1. Найти конфликты: После попытки слияния Git отметит конфликтующие участки в файлах. Они выглядят так:
<<<<<<< HEAD
изменения из текущей ветки
=======
изменения из ветки, которую сливают
>>>>>>> branch-name
2. Редактировать файл: Нужно выбрать, какие изменения оставить, или объединить их вручную. Удалить маркеры <<<<<<<, =======, >>>>>>>.
3. Добавить изменения в индекс: После редактирования файл нужно добавить в индекс:
git add <имя_файла>
4. Завершить слияние: После разрешения всех конфликтов завершить слияние командой:
git commit
Если нужно отменить слияние и начать заново, используется команда
git merge --abort.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
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.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
git blame используется для просмотра истории изменений конкретного файла с указанием автора и коммита, в котором была изменена каждая строка. Это помогает понять, кто и когда вносил изменения.Пример использования:
git blame <file>
Вывод показывает:
- Хэш коммита.
- Имя автора.
- Дату изменения.
- Номер строки и её содержимое.
Для ограничения просмотра определённым диапазоном строк:
git blame -L 10,20 <file>
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9❤1
Windows:
1. Скачать установщик с официального сайта: [git-scm.com](https://git-scm.com/).
2. Запустить установщик и следовать инструкциям на экране.
3. В процессе установки можно оставить настройки по умолчанию.
macOS:
1. Установить через Homebrew:
2. Если Homebrew не установлен, можно скачать установщик с [git-scm.com](https://git-scm.com/).
Linux:
1. Для дистрибутивов на основе Debian/Ubuntu:
2. Для дистрибутивов на основе Red Hat/Fedora:
После установки проверить версию Git:
Ставь👍 , если было полезно!
Больше ответов на сайте👈
✈️ Git собеседования
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
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Основные сценарии использования:
1. Сравнение рабочей директории и индекса:
git diff
Показывает изменения в файлах, которые еще не добавлены в индекс.
2. Сравнение индекса и последнего коммита:
git diff --cached
Отображает изменения, которые добавлены в индекс, но еще не закоммичены.
3. Сравнение между коммитами:
git diff commit1 commit2
Показывает различия между двумя коммитами.
4. Сравнение веток:
git diff branch1..branch2
Выводит различия между двумя ветками.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
git submodule add <repository-url> <path>
-
<repository-url> — ссылка на внешний репозиторий.-
<path> — путь, куда submodule будет добавлен в основном проекте.Submodule фиксируется как конкретный коммит, что обеспечивает стабильность. Для обновления submodule до последней версии:
git submodule update --remote
Submodule полезны для управления зависимостями, но требуют осторожности, так как добавляют сложность в работу с репозиторием.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5❤1
git reset или git rm. Вот два способа:1. Использование git reset:
Если файл уже был добавлен в коммит, но нужно его удалить, можно сделать мягкий сброс (soft reset) и пересоздать коммит:
git reset HEAD~1
git reset <file> # Убрать файл из индекса
git commit -c ORIG_HEAD
Этот способ сохраняет изменения в рабочей директории.
2. Использование git rm:
Если файл нужно полностью удалить из истории, можно использовать
git rm:
git rm --cached <file> # Удалить файл из индекса, но оставить в рабочей директории
git commit --amend # Перезаписать последний коммит
После этого файл будет исключен из коммита.
Оба метода позволяют исправить историю, но важно помнить, что изменение коммитов может повлиять на работу с удаленными репозиториями.
Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7❤1
1. Ручное разрешение: Отредактировать конфликтующие файлы, оставив нужные изменения, и выполн
ить git add для фиксации.
# После редактирования файла
git add <conflicted_file>
git commit
2. Использование инструментов: Воспользоваться merge-инструментами, такими как
git mergetool, для визуального разрешения конфликтов.3. Принятие изменений одной из веток: Использовать
git checkout --ours или git checkout --theirs для выбора изменений из текущей или другой ветки соответственно.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤1
.gitignore. Для этого используется синтаксис с символом *, который обозначает любое имя файла.Пример: игнорирование всех файлов с расширением
.log и .tmp.
*.log
*.tmp
Эти правила указывают Git игнорировать все файлы, заканчивающиеся на
.log и .tmp, в любой директории проекта. Файл .gitignore должен находиться в корне репозитория.Ставь
Больше ответов на сайте
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8❤1