Ветка из предыдущего коммита с использованием Git - PullRequest
1517 голосов
/ 12 мая 2010

Если у меня n коммитов, как мне перейти с n-3 коммита?

Я вижу хэш каждого коммита.

Ответы [ 15 ]

2 голосов
/ 11 января 2019

Просто запустите:

git checkout -b branch-name <commit>

Например:

git checkout -b import/january-2019 1d0fa4fa9ea961182114b63976482e634a8067b8

Команда checkout с параметром -b создаст новую ветвь AND это переключит вас на это

1 голос
/ 20 июля 2018

Перейти к конкретному коммиту из репозитория git

Иногда при работе с git-репозиторием вы хотите вернуться к определенной фиксации (ревизии), чтобы сделать снимок вашего проекта в определенное время. Для этого вам понадобится хэш SHA-1 коммита, который вы легко найдете, проверив журнал командой:

git log --abbrev-commit --pretty=oneline

, который даст вам компактный список всех коммитов и короткую версию хэша SHA-1.

Теперь, когда вы знаете хеш коммита, на который хотите перейти, вы можете использовать одну из следующих 2 команд:

git checkout HASH

или

git reset --hard HASH

1020 * фотографии *

git checkout <commit> <paths>

Говорит git заменить текущее состояние путей на их состояние в данном коммите. Пути могут быть файлами или каталогами.

Если ветка не указана, git принимает коммит HEAD.

git checkout <path> // restores path from your last commit. It is a 'filesystem-undo'.

Если путь не указан, git перемещается HEAD к данному коммиту (тем самым изменяя коммит, над которым вы сидите и работаете).

git checkout branch //means switching branches.

сброс

git reset <commit> //re-sets the current pointer to the given commit.

Если вы находитесь на ветке (обычно так и должно быть), HEAD и эта ветка перемещаются для фиксации.

Если вы находитесь в отключенном HEAD состоянии, git reset только перемещается HEAD. Чтобы сбросить ветку, сначала проверьте ее.

Если вы хотите узнать больше о разнице между git reset и git checkout, я бы порекомендовал прочитать официальный блог git .

1 голос
/ 14 июня 2018

Вот что я сделал:

C:\Users\[path]\build>git checkout -b responsivenavigation 8a75b001096536b3216022484af3026aa9c7bb5b
Switched to a new branch 'responsivenavigation'

C:\Users\jaimemontoya\Dropbox\CuponClub\androidapp\build>git branch
  master
* responsivenavigation

В этом случае 8a75b001096536b3216022484af3026aa9c7bb5b был и старый коммит принадлежал ветке master.

0 голосов
/ 18 апреля 2019

Чтобы принять принятый ответ в Visual Studio 2015 & 2017:

Click in alterations

Нажмите на изменения (красная стрелка вверху)

Click Actions to View History

Нажмите Действия (красная стрелка вверху) и выберите Просмотр истории в раскрывающемся меню

И откроется новая вкладка:

History tab

И вам следует щелкнуть правой кнопкой мыши предыдущий коммит, к которому вы хотите вернуть свой код: right click the previous commit

Выберите, чтобы оформить заказ на новую ветку и вуаля!

Ниже, хотя это и не часть вопроса ОП, но я делаю и то, и другое, и этот шаг для меня, по крайней мере, для меня: если вы хотите вернуться к предыдущему коммиту, без проверки новой ветки, НЕ выбирайте вернуться (!?); Вы должны выбрать переопределить --mixed или --hard:

right click the previous commit and redefine

0 голосов
/ 28 августа 2018

Select Commit

Для пользователей Git GUI вы можете визуализировать всю историю (при необходимости), а затем щелкнуть правой кнопкой мыши на коммите, с которого вы хотите разветвиться, и ввести имя ветки.

Enter Branch name

Visualize all the history

...