#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
и посмотрите, получите ли вы поведение, которое вы искали.