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

Ответить
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

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

Сообщение ya »

ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

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

Сообщение 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 -- ./файл - уберёт все изменения в указанном файле, подготовленного для коммита
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

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

Сообщение ya »

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

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

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

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

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

git revert хэш-код - применит обратные операции прошлого коммита, и добавт указанный хэш коммита как последний в ветку коммитов
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

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

Сообщение ya »

git checkout -b имя_ветки - перейдёт в указанную ветку, и если она не существует, то создаст ветку

git log --graph --all - покажет хэши коммитов всех веток
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

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

Сообщение ya »

git merge master - вольёт мастер-ветку в текущую ветку. Саму мастер-ветку не затронет, если текущая не является таковой

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

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

Если ветка (после вливания в мастер) больше не нужна, то её можно закрыть и сдавать проект
git branch -d имя_ветки
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

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

Сообщение ya »

Создаём репозиторий на git

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

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

git pull - синхронизирует удалённые коммиты на локальные
ya
^-^
Сообщения: 2336
Зарегистрирован: 16 дек 2021, 19:56

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

Сообщение 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
Ответить