Обновление GitHub-репозитория из новой папки с сохранением истории

  • Автор темы Автор темы mexan
  • Дата начала Дата начала
Сообщения
202
Реакции
0
Запускаем Git Bash именно внутри папки с проектом и выполняй по порядку.
Настраиваем имя и почту автора коммитов:
Код:
git config --global user.name "Alexandr Gedz"
Код:
git config --global user.email "ittehid@gmail.com"

Сначала создаём локальный Git и подключаем твой существующий GitHub:
Код:
git init
Код:
git remote add origin https://github.com/ittehid/IpMonitor.git
Код:
git fetch origin

Теперь привязываем эту новую папку к истории существующего master:
Код:
git branch -M master
Код:
git reset --mixed origin/master

Эта команда не заменит твои файлы старыми. Она только даст Git понять:
вот старая версия с GitHub, а содержимое моей текущей папки — новая версия относительно неё.

Теперь:
Код:
git status
Именно здесь ты увидишь:
Код:
modified:
deleted:
untracked:

То есть Git уже понимает, что конкретно изменилось между предыдущей версией и новой.

Если в репозитории у тебя были LICENSE.txt и .gitattributes, а в новой папке их нет, я бы сохранил их:
Код:
git restore --source=origin/master -- LICENSE.txt .gitattributes

Если какого-то из этих файлов на GitHub нет — Git просто сообщит об этом, ничего страшного.

Теперь добавляем абсолютно все изменения:
Код:
git add -A

Проверяем:
Код:
git status

Очень полезная команда перед коммитом:
Код:
git diff --cached --stat

Она покажет кратко, например:
Код:
HostForm.cs             | 25 +++++---
HostForm.Designer.cs    | 18 ++++--
UI/UiTheme.cs           | 12 +++--
README.md                | 95 +++++++++++++++++++++
IpMonitor.csproj         |  2 +-
...

А если хочешь посмотреть сами изменения:
Код:
git diff --cached

Теперь делаем коммит для новой версии (пример моего коммита):
Код:
git commit -m 'release: IP Monitor 2.0.28' -m 'Business Blue UI, automatic Web address filling, RDP host integration, journal improvements and UI fixes.'

После этого:
Код:
git push -u origin master
 
Последнее редактирование:
Краткая шпаргалка:
Код:
git init
git remote add origin https://github.com/ittehid/IpMonitor.git
git fetch origin

git branch -M master
git reset --mixed origin/master

# Сохраняем файлы, которые существуют только в репозитории:
git restore --source=origin/master -- README.md
git restore --source=origin/master -- LICENSE.txt .gitattributes

git add -A
git status
git diff --cached --stat

git commit -m 'ТЕКСТ КОММИТА'
git push -u origin master
 
Назад
Сверху