Используя TortoiseGit, удаляя все после определенной фиксации

Используя TortoiseGit (я стараюсь избегать использования командной строки), как, каждый удаляет все фиксации, которые акцентируют от определенной фиксации, и "возвращаются в прошлом" (использование в качестве примера: длительное выполнение чего-то, полагал, что мне не нравилось, куда оно шло, и решенное для движения, "назад" игнорируя все промежуточные).

Короче говоря я хочу пойти 5 фиксаций "назад" и удалить их впоследствии.

9
задан richard 28 March 2010 в 00:16
поделиться

2 ответа

Из командной строки вы можете использовать команду возврата или сброса. TortoiseGit должен иметь аналогичные команды, возможно, вы можете получить к ним доступ, просмотрев журнал фиксации?

(Я не использовал TortoiseGit , поэтому я не могу его проверить)

0
ответ дан 4 December 2019 в 07:34
поделиться

Я никогда ничего не использовал 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 ...

2
ответ дан 4 December 2019 в 07:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: