Squa sh слил ветку в master на Github, в которой отсутствовали некоторые изменения - PullRequest
0 голосов
/ 17 января 2020

Я единственный разработчик проекта, над которым я работаю. Я использую git и Github для контроля версий.

Мой рабочий процесс довольно прост:

  1. Создание нового feature_branch из мастера.
  2. После того, как работа над feature_branch завершена, он перемещается вверх по течению.
  3. Изменения рассмотрены и сделан запрос на получение.
  4. Запрос на получение - это squa sh объединен с master.

Предыдущий коммит был squa sh при объединении с мастером удаленно отсутствовал однострочный комментарий. Я всегда мог следовать протоколу, описанному выше, и создавать новую локальную ветвь, вставляя ее и объединяя ее в master с этим изменением. Тем не менее, кажется, что это пустая трата только для однострочного комментария.

Одним из решений, о котором я подумал, было выполнение следующих шагов:

git checkout master 
git reset HEAD~ // Revert last commit
// Add the missing comment to my code
git add .
git commit -m 'Commit message' // This would be the same commit message as the reverted commit
git push -f origin master

Вопросы:

  1. Решение, упомянутое выше, включает принудительное нажатие на удаленный мастер. Я беспокоюсь, что это может испортить историю версий. Будет ли он? Является ли это лучшим способом go об этом?
  2. Если нет, то каков наилучший практический / безопасный метод для выполнения таких изменений?

1 Ответ

1 голос
/ 17 января 2020

A push -f может испортить историю версий. Если вы знаете, что делаете, этого не произойдет. Команды, которые вы выполняете, не будут портить историю, если вы не устарели в своем локальном репо. (Обязательно сделайте git fetch origin прямо перед вами git push -f).

При этом, даже если вы уверены, что не будете портить историю, вы все равно можете не захотеть этого делать. Вы создаете новый коммит и заменяете существующий коммит (даже если вы добавляете только однострочный комментарий). Если кто-то обновил ваш исходный коммит, вы можете вызвать у него проблемы, заменив ваш коммит новым.

В случае, когда вы работаете с другими людьми и уже выдвинули свои коммиты, я настоятельно рекомендую не переписать историю - вместо этого создайте новый коммит после вашего оригинала с любыми необходимыми исправлениями.

...