При работе с git я стараюсь использовать множество «продвинутых» функций, чтобы переписать и реорганизовать мою локальную историю, прежде чем нажимать на удаленный компьютер. Одна команда, которую я часто использую, чтобы изменить фиксацию моей текущей ветви, указывает на значение git reset --hard <commit>
. К сожалению, эта команда имеет некоторые потенциально нежелательные эффекты при запуске с незафиксированными изменениями в вашем локальном каталоге. Из-за этой функции я потерял работу (хотя обычно это не так много, как правило, я часто совершаю).Есть ли более безопасный способ перемещения указателя ветвления, чем `git reset -hard`?
Есть ли альтернатива git reset --hard
для изменения фиксации мой текущей ветви указывает на, что не приводит к потере данных, когда у меня есть неподтвержденные изменения в моей рабочей директории? (В идеале, я хотел бы что-то вроде git checkout
который изменяет мой текущий указатель ветви вместо изменения ГОЛОВУ.)
Git v1.7.3 Release Notes ... "мерзавец контроль -B" более короткий способ сказать "GIT ветви -f " следует "мерзавец проверка " –
@UweGeuder Либо Замечания по выпуску тогда неполное, или это было смягчено в более поздней версии. Если вы находитесь на ветке 'master',' git branch -f master' - это ошибка («фатальная: не могу принудительно обновить текущую ветвь»), но «git checkout -B master » действительно работает. Я тестировал это с помощью Git 1.9.4. – hvd
Это почти идеально. Я не знал об этом варианте для 'git checkout'. Теперь мне просто нужно написать псевдоним, который обрабатывает заполнение «текущей ветви», поэтому мне не нужно вводить его каждый раз. Спасибо за вашу помощь. ;-) – Ajedi32