Я иногда проверяю предыдущую версию кода для проверки или тестирования. Я видел инструкции о том, что делать, если я хочу изменить предыдущие коммиты, но не делаю никаких изменений. После того, как я это сделал. git checkout HEAD^
, как я могу вернуться к кончику ветки? .. git log
больше не показывает мне SHA последней фиксации.Как вернуться к последней фиксации после проверки предыдущей фиксации?
ответ
Если вы знаете, что вы хотите совершить, чтобы вернуться к тому, глава какой-то ветви, или помечен, то вы можете просто
git checkout branchname
Вы можете также используйте git reflog
, чтобы узнать, что еще зафиксировал ваш HEAD (или любой другой ref) в прошлом.
Edited добавить:
В новых версиях Git, если вы только побежал git checkout
или что-то еще, чтобы переместить HEAD
один раз, вы можете также сделать
git checkout -
, чтобы вернуться к где бы он ни находился до последней проверки. Это было мотивировано, по аналогии с идиомой оболочки cd -
, чтобы вернуться к любой рабочей директории один был ранее.
. Я хотел бы упомянуть, что типичным примером будет «git checkout master». Одна из трудностей, с которыми я училась использовать git, - это не знать, какие конкретные ключевые слова (например, «мастер») я могу фактически заменить на слова заполнителя, такие как «branchname». – AbePralle
'master' на самом деле не является ключевым словом, так как' HEAD'. Это просто имя ветки по умолчанию в новом репозитории. Вы можете запустить 'git branch' для получения списка ветвей в вашем репозитории и' git tag -l' для списка тегов. Аналогичным образом, «origin» является именем по умолчанию удаленного, с которого клонируется репозиторий, но в нем нет ничего особенного. – Novelocrat
Если было непонятно, 'git reflog' предоставляет вам список хешей, после чего вы можете использовать' git checkout [commit-hash] '. – jbnunn
Посмотрите графический графический интерфейс ... gitk
показывает все фиксации. Иногда легче работать графический ... ^^
Да, это на самом деле то, как я это делал в прошлом, но у меня нет графического интерфейса, доступного в данный момент. –
мерзавец фотографии мастер
мастер наконечник, или последней фиксации. gitk покажет вам, где вы находитесь на дереве в то время. git reflog покажет все коммиты, но в этом случае вы просто хотите наконечник, поэтому git checkout master.
gitk --all показывает все коммиты. – Kharoof
Наткнулся этот вопрос прямо сейчас, и что-то добавить
Чтобы перейти к самой последней фиксации:
git checkout $(git log --branches -1 --pretty=format:"%H")
Объяснение:
git log --branches
показывает журнал фиксаций из все местные отделения
-1
ограничение до одного совершить → последних фиксации
--pretty=format:"%H"
формата, чтобы показывать только совершить хэш
git checkout $(...)
использовать вывод субоболочки в качестве аргумента для проверки
Примечание:
Это приведет к отдельностоящим головам, хотя (потому что мы проверке непосредственно фиксация). Этого можно избежать, извлекая имя филиала, используя sed
, как описано ниже.
Чтобы перейти к ветви самой последней фиксации:
git checkout $(git log --branches -1 --pretty=format:'%D' |sed 's/HEAD -> \|tag: [^,]*\|,.*//g')
Объяснение:
git log --branches
показывает журнал фиксаций от всех местных отделений
-1
предел в один commit → последнее совершение
--pretty=format:"%D"
формата только имена рефа
|sed 's/HEAD -> \|tag: [^,]*\|,.*//g'
игнорирующих HEAD, теги и извлечь первые из нескольких имен филиалов
git checkout $(...)
использования выход субоболочки в качестве аргумента для проверки
Примечание:
Это всегда будет только используйте первое имя ветки, если для этого коммита есть несколько.
Во всяком случае, я думаю, что лучшим решением было бы просто, чтобы отобразить имена реф для самого последнего совершить знать, где проверка на:
git log --branches -1 --pretty=format:'%D'
Э.Г. создайте для этой команды псевдоним git top
.
Вы можете использовать одну из следующих команд мерзавца для этого:
git checkout master
git checkout branchname
Если ваш последний коммит на главной ветке, вы можете просто использовать
git checkout master
Добро пожаловать в SO. Не рекомендуется размещать ответы, которые уже были отправлены. Это решение уже упоминалось несколько раз. – AChampion
- 1. Как вернуться к предыдущей фиксации по ID
- 2. Как вернуться к предыдущей фиксации SVN?
- 3. Git: как вернуться к предыдущей фиксации
- 4. вернуться к предыдущей фиксации и удаления текущей фиксации я на
- 5. Как вернуться к последней удаленной фиксации git
- 6. вернуться к последней фиксации в мерзавца ветви
- 7. Запись журнала отсутствует после проверки предыдущей фиксации
- 8. вернуться к предыдущей фиксации в git локально, после большого слияния
- 9. , вернувшись к последней фиксации в git после оформления заказа
- 10. Необходимо вернуться к конкретному фиксации
- 11. Фиксация фиксации последней фиксации git
- 12. Как вернуться к предыдущей фиксации с использованием исходного дерева
- 13. Рекомендуемый способ с Git, чтобы вернуться к предыдущей фиксации
- 14. Изменить фиксации, что не было предыдущей фиксации
- 15. Отменить все и вернуться к последнему фиксации
- 16. Как откат к предыдущей фиксации в Git?
- 17. Возврат к предыдущей фиксации Windows Azure
- 18. Применяя мерзавец патч из предыдущей фиксации на более поздней фиксации
- 19. Как вернуться к более раннему фиксации
- 20. Восстановить репозиторий к предыдущей фиксации GIT
- 21. SVN без последней фиксации
- 22. Возвращаясь к последней фиксации после мягкого сброса и изменить
- 23. GIT: Возвращение последней фиксации?
- 24. Использование Git тайник, контроль предыдущей фиксации, и вернуться
- 25. Git: вернуться к более раннему фиксации
- 26. Невозможно нажать после сброса текущей ветви к предыдущей фиксации
- 27. вернуться к конкретным фиксации в Git
- 28. Как мне вернуться к моей ветке после локальных изменений в старой фиксации?
- 29. Изменение предыдущей фиксации из башни Git
- 30. Git вернуться последней фиксации и удалить его из истории
Что касается 'мерзавца log' предложения вашего вопроса, вы всегда можете запустить 'git log -all' (или более полезно,' git log -oneline -graph -all'). – Wildcard