Как получить `git diff master` в качестве неустановленных правок в ветке, в которой я нахожусь?

#git

#git

Вопрос:

Допустим, я нахожусь в ветке otherBranch . Некоторое время назад это отделилось от master, но с тех пор я постоянно поддерживал связь с master, выполняя git merge master . Теперь я хочу «сбросить» это otherBranch , но я не думаю, что git reset master получится у меня там, где я хочу. В принципе, я хочу, чтобы все, что git diff master показывает мне (пока я стою в otherBranch ), было нестационарными изменениями. Как я могу это сделать?

Ответ №1:

Я думаю, что это git reset master сделает то, что вы хотите. Это приведет к сбросу состояния ветки в репозитории на то, что находится в master , но не коснется ваших рабочих файлов: другими словами, все ваши изменения теперь будут отображаться как нестационарные изменения.

Также обратите внимание, что часто лучше поддерживать вашу функциональную ветку в актуальном состоянии, регулярно обновляя ее на master, а не объединяя master. Это позволяет избежать большого количества коммитов слияния (так что единственные коммиты в вашей ветке — это изменения, которые вы явно зафиксировали):

  • … отредактируйте кое-что…
  • git add ...
  • git commit -m "i made some changes"
  • … проходит время…
  • git remote update
  • git rebase origin/master

Комментарии:

1. Кроме того, помните, что вы всегда можете сначала протестировать подобные вещи: просто создайте новую ветку ( git checkout -b testbranch ), опробуйте git reset master и посмотрите, получите ли вы поведение, которое вы искали.