Разъяснения при использовании git для возврата нескольких коммитов - PullRequest
2 голосов
/ 02 марта 2012

Может кто-нибудь прояснить некоторые вещи для меня. Если я вернусь к предыдущему коммиту, используя

git checkout HASH
  1. Запуск git branch показывает (no branch). Что это значит?
  2. Если я редактирую файл, то фиксирую. Будет ли он создавать новую ветку или просто обновит всю ветку, поэтому, когда я вернусь к текущей фиксации, файл также будет обновлен?
  3. В связи с # 2, является ли целью проверка предыдущего коммита, чтобы вы могли сделать из него ветку или что-то еще? Я догадываюсь о чем-то большем, но не вижу этого, так как мой проект не так уж и сложен.

Ответы [ 2 ]

1 голос
/ 02 марта 2012
  1. Это означает, что у вас есть отдельная ссылка HEAD, указывающая на коммит, который вы извлекли. Это означает, что любые коммиты, которые будут выполняться, не будут связаны с веткой и будут доступны только для коммита SHA, как только вы уберете HEAD из отдельного дерева.

  2. Ни одна ветка не создана или не обновлена. Вы создадите дерево коммитов, которое начинается с вашего извлеченного коммита, однако оно не является частью какой-либо ветви, пока вы не скажете git сделать это дерево частью ветви.

  3. Он предназначен для выполнения манипуляций с этим коммитом, которые вы, возможно, не захотите делать частью какой-либо ветви в вашем хранилище. Это может быть для одноразовой работы. Вы всегда можете создать новую ветку из предыдущего коммита, если захотите.

Страница man git-checkout дает хорошее объяснение этих проблем и прояснит ваше понимание использования checkout в этих различных целях.

0 голосов
/ 02 марта 2012
  1. Это означает, что вы находитесь в режиме DETACHED HEAD
  2. Нет, на ваш коммит не ссылается ни одна ветвь: ни один из HEAD ни одной ветви не ссылался на ваш новый коммит (следовательно,часть "detached head").
    См. также " HEAD и ORIG_HEAD в Git "
  3. git checkout -b aNewBranch достаточно для создания новой ветви, которая будет ссылаться на ваш текущий коммит (который больше не будет "отделенной ГОЛОВОЙ").

enter image description here

...