#git
#git
Вопрос:
3 недели назад коллега исправил проблему в prod, выполнив привязку к мастеру без предварительной привязки к dev (а затем слияния dev на master).
Ну, я не уверен, что именно произошло, но с этой даты есть проблема.
> git merge-base dev master
aaabbb
когда я git log
для aaabbb, он датируется 16 сентября. Поэтому я хотел перебазироваться (впервые в жизни, хотя я использую git merge ежедневно).
Я сделал
> git rebase --onto master dev
// fixed a few conflicts
> git pull
> git push
> git merge-base dev master
aaabbb
Почему моя перебазировка не работает? Я не получил никакого предупреждения от git. Спасибо!
Комментарии:
1. В какой ветке вы были, когда запускали
git rebase --onto master dev
?dev
Аргументом здесь является<upstream>
, поэтому, на какой бы ветке вы тогда ни находились, это та, которую вы перебазировали (ограничивая копии коммит, которые были на этой ветке, но не наdev
).2. @torek, на котором я был
dev
. не могли бы вы перефразировать «итак, на какой бы ветке вы ни находились, вы ее перебазировали»? Я не понимаю эту часть3. Если бы вы были на ветке
feature
, вы бы перебазировалисьfeature
, и это сразу объяснило бы, почемуgit merge-base dev master
изменений не было. Если вы были включеныdev
, то неясно, что здесь произошло. Однако,git pull
вероятно, ваш старый файл будет объединенdev
с вашим новымdev
, что, вероятно, тоже нехорошо. Между тем, добавление выходных данных изgit log --graph --oneline --decorate --all
может помочь выяснить, как обстоят дела сейчас.4. спасибо, но вижу это слишком поздно. Я, наконец, удалил нашу ветку разработчика и создал новую из master.
Ответ №1:
rebase
закончилось катастрофой. Я, наконец, в конечном итоге удалил свою dev
ветку и вырезал новую master
.
И это только что произошло снова. Что хорошо сработало, так это слияние master
dev
и dev
master
повторное слияние.