Rose debug info
---------------

Как добавить под git изменения, которые были сделаны напрямую на сервере

На сервере размещен проект под управлением git. Были внесены изменения в файлы не через git, а напрямую (например, через sftp, ftp, ssh и т. п.). Далее инструкция, как эти изменения добавить под git, не потеряв их.

К примеру, при вводе команды

git status

вы видите, что один или несколько файлов модифицированы:


Создаем отдельную ветку и переходим на нее

Для этого выполняем команду:

git checkout -b <название ветки>

В результате мы должны получить сообщение о переходе на новую ветку:

Switched to a new branch '<название ветки>'


Добавляем измененные файлы под git

Для этого можно выполнить команду с перечислением файлов, которые нам нужно добавить (необходимо в случае, если есть еще какие-либо локальные файлы, которые не нужно добавлять под git. Это можно понять по команде «git status», например, на скриншоте выше лишних файлов нет). Команда:

git add <путь к файлу 1> <путь к файлу 1> <путь к файлу 3>

Путь к файлам определяется относительно корня репозитория. Его можно взять из первоначальной команды «git status».

Если же лишних локальных файлов нет, тогда выполняем команду:

git add -A

Добавятся все файлы, которые были перечислены в ходе вывода команды «git status».

Если добавили лишний файл, то удалить его из индекса можно командой:

git rm --cached <имя файла>


Делаем commit и push изменений в удаленную ветку

Для commit выполняем команду:

git commit -m "<описание коммита>"

Мы должны получить сообщение об успешном commit. Примерный вид:

Проверяем, что все изменения теперь на ветке:

git status

Должны получить сообщение вида:

Выполняем команду для push:

git push origin <название ветки>

Мы должны получить сообщение вида:


Делаем merge ветки в master

Теперь переходим в ваш удаленный репозиторий. В моем случае это bitbucket.org. Создаем pull request из ветки, в которую вы делали push на предыдущем шаге (это необходимо, если у вас merge в master доступен только через pull request), проверяем. что все корректно и делаем merge.


Возвращаемся на ветку master на сервере

Для этого выполняем команду:

git checkout master

Мы должны получить сообщение о переходе на ветку master.

Выполняем команду, чтобы «стянуть» с удаленного master актуальные изменения:

git pull origin master

Получим сообщение об успешном «стягивании». Примерный вид:

После этого проверяем, что сейчас локальный репозиторий на сервере актуальный и смотрит на ветку master. Выполняем команду:

git status

Мы должны получить следующее сообщение.

Поделиться
Отправить
Запинить
 373   2021   git   unix