Первые три команды здесь были хорошими:
git add .
git commit -m "Saving changes made thus far"
git branch -m feature/123-OLD
Последний изменил имя feature/123
на имя feature/123-OLD
(при условии, конечно, что вы были на ветке с именем feature/123
в первую очередь).
Последняя команда не является неправильной , она просто не та, которую вы хотели:
git checkout origin/feature/123
То, что вы хотели, было:
git checkout feature/123
Это будет смотреть вокруг ваших (локальных) имен филиалов, не найти что-нибудь с именем feature/123
(оно больше не существует - feature/123-OLD
существует, но это не то же самое), а затем вызвать функцию "делай, что я имею в виду" git checkout
.
Эта функция говорит: Хм, я не могу найти ветку, которую вы просили. Я думаю, может быть, вы хотели, чтобы я создал новую ветку! Могу ли я найти только одно имя для удаленного отслеживания, например, origin/feature/123
, которое очень похоже на feature/123
? Если я не найду ни одного, ни двух, ни больше, я пожалуюсь и потерплю неудачу. Но если я найду ровно один , я сделаю новый feature/123
, указывающий на тот же коммит, что и имя удаленного отслеживания!
И, конечно, он найдет только один, поэтому он создаст feature/123
. Когда создает , создает feature/123
, по умолчанию устанавливается восходящий поток origin/feature/123
. Это режим «Что я имею в виду» или DWIM checkout
, и это именно то, что вы имели в виду.