LINUX.ORG.RU

Git не делает откат

 , ,


0

2

Работаю с git. На denwer. Друпал 7.

Пробую делать откат до комита, но не получается. Создаю репозиторий. Вношу изменения на локальном сервере, пишу git add . потом git commit

Вношу изменения специально, чтобы потом их убрать (в тестовом режиме).

Пытаюсь сделать откат, пишу по-разному:

git reset --hard HEAD

git reset --hard <commit> Откат не делается

synthaxis errow unexpected token near 'newline'

После git reset --hard вроде сделался откат пишет head now at ... (то, что было в коменте моего предыдущего коммита)

захожу через браузер на сайт, отката нет (ни в базе ни в файлах сайта)

денвер перезапускаю на всякий случай, без результата

что не так?

может его еще вытянуть как-то надо?

Запушать нужно с флагом -f, но ты тогда потеряешь коммиты на сервере. То есть, перезапишешь полностью бранч. Советую почитать progit.

panter_dsd ★★★★ ()
Ответ на: комментарий от panter_dsd

Спасибо progit почитаю Я первую неделю юзаю git, поэтому все понимаю, запушать с флагом это «git push -f» на каком сервере потеряю файлы? (на локальном те, что добавлены?) мне удаленный репозиторий не нужен пока git нужен только для откатов

ksen-pol ()
Ответ на: комментарий от waker

Да похоже Пуш не делаю А его нужно делать даже если я только на локальном сервере?

ksen-pol ()
Ответ на: комментарий от ksen-pol

если у тебя 1 репозиторий — то пуш делать не надо.

если 2 репозитория (например, локалхост + сервер) — то надо.

waker ★★★★★ ()
Ответ на: комментарий от ksen-pol

Может комит все же отправить на github а потом оттуда вытянуть? Но это лишние действия. Нужно просто откат сделать на локальном сервере

ksen-pol ()
Ответ на: комментарий от ksen-pol

то что ты пытался сделать, делается командой

git reset --hard HEAD^

(обрати внимание на ^)

но я обычно предпочитаю rebase -i для наглядности и спецэффектов.

waker ★★★★★ ()

Я думаю, что тебе нужен git revert

annulen ★★★★★ ()
Ответ на: комментарий от waker

Спасибо Странно делаю комит, вношу изменения, делаю откат: git reset --hard HEAD^, откат не делается

сразу после этого делаю git status

он показывает, что есть изменения не добавленные

я делаю git add .

и без комита пытаюсь откатить сделанные изменения и добавленные опять с помощью git reset --hard HEAD^

Откат сделался, но не на предыдущий комит а на первый... почему-то а чтобы на предыдущий сделать нужно git reset --hard <commit>

Может здесь тоже что-то не так просто нужен ^ или еще что-то? Он мне пишет synthaxis errow unexpected token near 'newline' И попробую rebase -i

ksen-pol ()
Ответ на: комментарий от ksen-pol

Странно делаю комит, вношу изменения, делаю откат

нужно наоборот: «вношу изменения, делаю коммит, делаю откат»

если тебе просто надо откатить изменения, которые ты НЕ коммитил — то «git reset --hard» без параметров.

короче, прочитай какой-нибудь туториал по основам использования git.

waker ★★★★★ ()
Последнее исправление: waker (всего исправлений: 2)
Ответ на: комментарий от waker

Да, спасибо Мне нужно именно откатить изменения, которые незакомитчены Читаю повторно туториал

ksen-pol ()
Ответ на: комментарий от waker

Спасибо огромное, откатывается вроде, как нужно с reset --hard просто и все но только при условии, что изменения добавлены т.е. если вношу изменения на сервере и делаю откат, то он не делается (пишет, что откат сделан до педыдущего комита, но на сервере все остается, как до отката) если вношу изменения, делаю git add . и потом откат, то откатывается до предыдущего комита

ksen-pol ()
Ответ на: комментарий от ksen-pol

untracked files можно чистить командой git clean -f

git reset откатывает только файлы, о которых git знает.

waker ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.