Страница 1 из 1

Репозиторий своего проекта

Добавлено: 09 сен 2023, 07:47
ya

Re: Репозиторий своего проекта

Добавлено: 12 сен 2023, 10:33
ya
git init - начинаем версионировать свой код

git status - как гит видит текущее состояние папки и файлов в ней. Файлы имеющие статус Untracked - файлы которые гид видит впервые и после удаления ненужных добавить в репозиторий git add

rm file - удаляем ненужные файлы

git add файл/папка - добавление файла в репозиторий

git commit -m "комментарий к комиту" - коммит репозитория

git diff - покажет изменения в файле символом плюс (то что добавлено, минусом - то что удалено) строки между последним закомиченым изменением, если изменение было сделано
git diff --cached - покажет те изменения которые добавлены между последним коммитом и тем что добавлено

git checkout ./* - откатит изменения на предыдущий коммит (уберёт все изменения к последнему состоянию, которое добавлено в комит и закомичено)

git reset HEAD -- ./файл - уберёт все изменения в указанном файле, подготовленного для коммита

Перемещение по коммитам

Добавлено: 12 сен 2023, 11:15
ya
Перемещение по коммитам

git log отобразит все сделанные коммиты с хэш-кодами

git show хэш-код - отобразит изменения коммита на конкретном хэш-коде

git checkout хэш-код - перейдёт в указанный коммит хэш-кода

git checkout master - вернётся в мастер-ветку

git revert хэш-код - применит обратные операции прошлого коммита, и добавт указанный хэш коммита как последний в ветку коммитов

добавление ответвлений

Добавлено: 12 сен 2023, 11:33
ya
git checkout -b имя_ветки - перейдёт в указанную ветку, и если она не существует, то создаст ветку

git log --graph --all - покажет хэши коммитов всех веток

Слияние коммитов

Добавлено: 12 сен 2023, 11:42
ya
git merge master - вольёт мастер-ветку в текущую ветку. Саму мастер-ветку не затронет, если текущая не является таковой

Если ничего не поломалось в результате вышеуказанного вливания, то переходим в мастер-ветку и заливаем свою ветку в мастера

git checkout master - перейдёт в мастер-ветку
git merge имя_ветки - зальёт изменения указанной ветки в мастер-ветку

Если ветка (после вливания в мастер) больше не нужна, то её можно закрыть и сдавать проект
git branch -d имя_ветки

Колоборация - загрузка своего кода на git

Добавлено: 12 сен 2023, 12:03
ya
Создаём репозиторий на git

Если есть локальный репозиторий, то создаём удалённый репозиторий
git remote add origin https://github.com/логин/имя_созданного_репозитория.git

git push -u origin master - создаст мастер на удалённом репозитории и загрузит локальное на удалёнку в мастер

git pull - синхронизирует удалённые коммиты на локальные

Решение конфликтов слияния

Добавлено: 12 сен 2023, 12:31
ya
Для решения конфликтов слияния можно использовать https://www.sublimemerge.com

Просмотр всех тулзов для мёржа в системе:
git mergetool --tool-help - покажет список утилит, поддерживаемых гитом для слияния

Для использования smerge нужна версия гита выше или равной 2.28
git --version

Устанавливаем тулзу слияния (мёржа) в гит:
git config --global merge.tool smerge

Для просмотра всех значений конфига гита можно использовать:
git config --global --list
git config --global --edit - для редактирования конфига

Прописываем путь к smerge, потому что по-умолчанию гит не нашёл этот путь:
git config --global mergetool.smerge.path "путь в /bin/smerge"
Win

Код: Выделить всё

git config --global mergetool.smerge.path "C:\Program Files\Sublime Merge\smerge.exe"
Mac

Код: Выделить всё

git config --global mergetool.smerge.path "/Application/Sublime Merge.app/Contents/SharedSupport/bin/smerge"
Теперь можно запустить мёрдж-тул:
git mergetool