Используя TortoiseGit (я стараюсь избегать использования командной строки), как, каждый удаляет все фиксации, которые акцентируют от определенной фиксации, и "возвращаются в прошлом" (использование в качестве примера: длительное выполнение чего-то, полагал, что мне не нравилось, куда оно шло, и решенное для движения, "назад" игнорируя все промежуточные).
Короче говоря я хочу пойти 5 фиксаций "назад" и удалить их впоследствии.
Из командной строки вы можете использовать команду возврата или сброса. TortoiseGit
должен иметь аналогичные команды, возможно, вы можете получить к ним доступ, просмотрев журнал фиксации?
(Я не использовал TortoiseGit
, поэтому я не могу его проверить)
Я никогда ничего не использовал Tortoise (если не считать группу electronica), но я дам вам эту информацию на случай, если вы не найдете способ сделать это с помощью графического интерфейса, иначе вы все-таки решите перейти на интерфейс командной строки.
Как упоминает @Tuxified, вы можете сделать это с помощью git reset --hard
. Вам нужно указать фиксацию, которая может быть сделана любым устрашающим набором возможных способов; наиболее распространены такие формы, как HEAD ~ 4
, который указывает фиксацию 4 перед заголовком текущей ветки, и deadbeef42
, которая указывает фиксацию, чей SHA1 начинается с 0xdeadbeef42. Если вы используете Linux или OSX, вы можете получить полную информацию о спецификаторах фиксации через man git-rev-parse
в разделе «УКАЗАНИЕ ИЗМЕНЕНИЙ».
Вы также можете переименовать текущую ветку ( git branch -m new_branch_name
), а затем создать новую ветку с головкой в том месте, к которому вы хотите вернуться.Преимущество состоит в том, что если вы в конечном итоге захотите использовать все или часть того, что вы там делали, вы все равно можете легко получить к нему доступ; и если вы опечатаете коммит, вы спасетесь от большого критического момента. Плюс ветки git очень легкие, поэтому единственным реальным недостатком является то, что в списке будет еще одна ветка. Чтобы создать новую главную ветку, вы должны использовать git branch master
, а затем проверить ее. Таким образом, чистый эффект здесь такой же, как и в первом варианте, за исключением того, что у вас все еще есть ваши старые изменения, сохраненные в ветке new_branch_name
. Вы даже можете объединить эти изменения позже, после того, как новые коммиты на master
, если захотите.
Обратите внимание, что любой из этих методов считается « перезаписью истории » и вызовет проблемы, если вы поделитесь своим репо с другими. Если вы поступаете сообразительно и нажимаете на репозиторий резервных копий в облачном городе или на другом компьютере, вам придется исправить кое-что в этом конце, прежде чем вы сможете снова запустить его.
Вероятно, это намного больше информации, чем вам нужно прямо сейчас, но если вы в конечном итоге начнете много использовать git, вы, вероятно, захотите изучить этот материал в какой-то момент. Извините, я не знаю, как использовать Tortoise ...