2009-02-21 12 views
54

Я недавний конверт git. Замечательно, что вы можете использовать git-svn для локального отделения ветвей, не нарушая работу svn-сервера. В последней версии кода произошла ошибка. Я хотел установить время, когда он работал, чтобы я мог использовать git bisect. Я не мог найти правильную команду, чтобы вернуться назад во времени. Благодарю.Что такое git-эквивалент «svn update -r»?

ответ

61
git checkout HEAD~1 

Это перенесет вашу текущую головку на одну ревизию ранее.

git checkout <sha> 

Это переведет ваш текущий HEAD в данную ревизию. Используйте git log или gitk, чтобы найти интересующую вас версию.

+2

Хотя я выполнил обе эти команды, я не вижу свои файлы. Вот ситуация. 1.) Я удаляю папку. 2.) Я выполняю две команды, которые вы указали. 3.) Папка по-прежнему удаляется, а не сбрасывается, поскольку обновление SVN было бы восстановлено. – Danny

+2

Это потому, что вы ищете 'git checkout - '. – Bombe

19

И возвращаясь к последнему (эквиваленту: SVN вверх), вам необходимо обновить ветку, как правило:

git checkout master 

Это происходит потому, что ГОЛОВА относится к версии, что в настоящее время извлеченная.

+4

Это не похоже на svn. В svn, если я что-то редактирую и хочу просто очистить его и вернуться к текущей версии репозитория, я просто удалю файл и сделаю svn. Затем текущая версия файла, который я только что удаляю, извлекается из репозитория. Это не происходит с мастером проверки git. Это просто говорит мне, что файл удален. Как вернуть удаленный файл? – mutatron

+3

Можно отменить изменения (включая локально удаленные файлы), проверив файл: 'git checkout myfile.txt' – jmu

1
git pull

кажется более подходящую команду для того, что вы ищете

0

Это, кажется, делать то, что я хотел, что то, что я думаю, что вы просите слишком

git checkout * 
0

Если вы используют TortoiseGit, тогда

Right Click in project folder > TortoiseGit > Pull