Ответ 1
Используйте git checkout <sha1>
, чтобы проверить конкретную фиксацию.
Я клонировал репозиторий git для определенного проекта. Могу ли я перевернуть файлы в исходное состояние, и когда я просмотрю файлы, перейдите к ревизии 2, 3, 4... самой последней? Я хотел бы получить обзор того, как проект развивается.
Используйте git checkout <sha1>
, чтобы проверить конкретную фиксацию.
Чтобы перейти к конкретной версии /commit, выполните следующие команды. HASH-CODE вы можете получить от git log --oneline -n 10
git reset --hard HASH-CODE
Примечание. После reset для конкретной версии /commit вы можете запустить git pull --rebase
, если вы хотите вернуть все коммиты, которые отбрасываются.
Вы можете получить графическое представление истории проекта с помощью таких инструментов, как gitk
. Просто запустите:
gitk --all
Если вы хотите проверить конкретную ветку:
git checkout <branch name>
Для конкретного фиксации вместо имени ветки используйте хэш SHA1. (См. Treeishes в книге сообщества Git, которая хорошо читается, чтобы увидеть другие варианты навигации по вашему дереву.)
git log
имеет целый набор опций для отображения подробной или итоговой истории.
Я не знаю, как легко двигаться вперед в истории фиксации. Проекты с линейной историей, вероятно, не все так распространено. Идея "ревизии", как у SVN или CVS, не отображает все это в Git.
Используя ключ фиксации SHA1, вы можете сделать следующее:
Сначала найдите фиксацию, которую вы хотите для определенного файла:
git log -n <# commits> <file-name>
Это, на основе вашего <# commits>
, сгенерирует список коммитов для определенного файла.
СОВЕТ. Если вы не уверены в том, какую фиксацию вы ищете, хороший способ узнать - использовать следующую команду: git diff <commit-SHA1>..HEAD <file-name>
. Эта команда покажет разницу между текущей версией фиксации и предыдущей версией фиксации для определенного файла.
ПРИМЕЧАНИЕ: ключ фиксации SHA1 отформатирован в списке git log -n
как:
commit
<SHA1 id>
Во-вторых, проверьте требуемую версию:
Если вы нашли желаемую фиксацию/версию, которую хотите, просто используйте команду: git checkout <desired-SHA1> <file-name>
Это поместит версию файла, указанную в промежуточной области. Чтобы вывести его из промежуточной области, просто используйте команду: reset HEAD <file-name>
Чтобы вернуться к тому, на что указывает удаленный репозиторий, просто используйте команду: git checkout HEAD <file-name>
Я создал инструмент командной строки для командной строки, чтобы узнать, как развивается проект. вы могли бы видеть, помогает ли это. Инструмент размещен на git по следующему URL
Один из способов - создать все фиксации, когда-либо сделанные для патчей. проверьте первоначальную фиксацию, а затем примените исправления в порядке после прочтения.
используйте git format-patch <initial revision>
, а затем git checkout <initial revision>
.
вы должны получить кучу файлов в вашем директоре, начиная с четырех цифр, которые являются патчами.
когда вы закончите читать свою версию, просто git apply <filename>
, которая должна выглядеть
git apply 0001-*
и count.
Но я действительно удивляюсь, почему вы просто не хотели бы читать сами патчи? Пожалуйста, разместите это в своих комментариях, потому что мне интересно.
руководство git также дает мне следующее:
git show next~10:Documentation/README
Показывает содержимое файла Documentation/README, поскольку оно было текущим в 10-м последнем фиксации следующей ветки.
вы также можете взглянуть на git blame filename
, который дает вам список, в котором каждая строка связана с хэшем + автором.
Я хотел бы упомянуть инструмент командной строки командной строки, доступный, казалось бы, везде. Это текстово-графическое древовидное представление с отображением тегов и т.д. Истории изменений проекта. Его можно использовать над ssh и т.д. Супер удобно.
Я был в ситуации, когда у нас есть главная ветвь, а затем другая ветвь с именем 17.0, и внутри этой 17.0 был хеш коммита, скажем, "XYZ". И клиенту дается сборка до этой ревизии XYZ. Теперь мы столкнулись с ошибкой, которая должна быть решена для этого клиента. Таким образом, нам нужно создать отдельную ветку для этого клиента до этого хеш-кода. Так вот как я это сделал.
Сначала я создал папку с этим именем клиента на моем локальном компьютере. Скажите, что имя клиента - "AAA", как только эта папка создана, выполните следующую команду внутри этой папки:
Чтобы просмотреть все состояние или зафиксировать в репозитории git, выполните
git log --decorate --oneline --graph
Это покажет вам все дерево сверху вниз. Выберите одно коммит и скопируйте его SHA (буквенно-цифровой код, связанный с фиксацией, который также является уникальным), который вы хотите увидеть.
git reset --hard /sha/that/you/choose/
Теперь вы находитесь в этом конкретном коммите.
Чтобы сделать жизнь немного проще использовать Smart Git, который является gui для git... Вы можете проверить на коммиты, которые вы хотите