Я просмотрел информацию об авторе. вверх по первому фиксации.Как удалить первую и только фиксацию, если она является единственной фиксацией в ветке?
Однако, похоже, что большинство операций по восстановлению или древовидной структуре полагаются на некоторые другие уже существующие.
Даже когда я запускаю интерактивную команду rebate Git, все, что я вижу в своем маленьком списке коммитов, - это одна строка, «noop». :/(Раскрыто это, запустив мой перебазироваться против дерева Git и root
с git rebase -i --root
, но удаление линии для первой фиксации я сделал на самом деле не удалить его из дерева.)
перебазирования на вершине root
, или первого commit, не работает.
[[email protected] vagrant]$ git rebase -i HEAD~1
fatal: Needed a single revision
invalid upstream HEAD~1
[[email protected] vagrant]$ git rebase -i HEAD
Unknown command: rnoop
Please fix this using 'git rebase --edit-todo'.
[[email protected] vagrant]$ git rebase --edit-todo
[[email protected] vagrant]$ git rebase --abort
Следующая выглядел соответствующим возможный альтернативный ответ, но я думаю, что-то еще, или, по крайней мере, более конкретно, стоит ответ на этот особый случай:
Delete commits from a branch in Git
Этот другой ответ (How do you undo the last commit?) привело к следующему:
[[email protected] vagrant]$ git reset --soft HEAD~
fatal: ambiguous argument 'HEAD~': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
[[email protected] vagrant]$ git reset --soft HEAD
Здесь, для тех, кто еще читает это, это буфер ВИМ с noop
я уже говорил ранее:
noop
# Rebase 3d1c632..3d1c632 onto 3d1c632 (1 command(s))
#
# Commands:
# p, pick = use commit
# r, reword = use commit, but edit the commit message
# e, edit = use commit, but stop for amending
# s, squash = use commit, but meld into previous commit
# f, fixup = like "squash", but discard this commit's log message
# x, exec = run command (the rest of the line) using shell
#
# These lines can be re-ordered; they are executed from top to bottom.
#
# If you remove a line here THAT COMMIT WILL BE LOST.
#
# However, if you remove everything, the rebase will be aborted.
#
# Note that empty commits are commented out
Для тех, кому интересно, почему я не просто редактировать файлы и заново добавить их к совершению, или что-то, я имел неправильную информацию об авторе, который я исправил только после того, как я был запустите «git commit», и я изменил информацию об авторе, пока у меня появилось сообщение commit для редактирования.
Возможно, я могу попробовать удалить всю папку .git
или что-то в этом роде, но я бы предпочел более элегантный способ.
Плюс, если я не удаляю всю папку .git
, я держу свои крючки и прочее, и у меня есть ощущение, что ответы на этот вопрос будут говорить о фундаментальных принципах проектирования в Git, которые я еще не могу понять ,
, если вы сделали ставку на сингл, только совершите транзакцию в своем репо. Не могли бы вы использовать 'git commit -amend'? я, скорее всего, неправильно понимаю базу вашей проблемы. – castis