Откат назад и сохранение состояния в удаленном репозитории

2,252 views
Skip to first unread message

Иван Земцов

unread,
Nov 11, 2011, 3:16:19 AM11/11/11
to Russian Git
Привет всем!

git reset --hard c814200
inzem@inzem:~/sites/1/info_office$ git status
# On branch master
# Your branch is behind 'origin/master' by 1 commit, and can be fast-
forwarded.
#
nothing to commit (working directory clean)

при git push получаю ошибку
! [remote rejected] master -> master (n/a (unpacker error)
error: failed to push some refs to 'ssh://git@...'

Пробовал также
git revert HEAD^
В локальном переходим, а как изменить в удаленном?

Иван Земцов

unread,
Nov 11, 2011, 3:17:16 AM11/11/11
to Russian Git
Забыл сказать, удаленный репозиторий bare

11 ноября 2011 г. 12:16 пользователь Иван Земцов <inz...@gmail.com> написал:



--
С уважением, Иван

Иван Земцов

unread,
Nov 11, 2011, 6:34:04 AM11/11/11
to Russian Git
Отвечаю сам себе.
git reset --hard 12abacd # отменяем все коммиты до заданного нами
git push --force origin master # для фиксирования текущего коммита после reset --hard в удаленном репозитории


11 ноября 2011 г. 12:17 пользователь Иван Земцов <inz...@gmail.com> написал:



--
С уважением, Иван

Serge Matveenko

unread,
Nov 11, 2011, 7:12:28 AM11/11/11
to russi...@googlegroups.com
2011/11/11 Иван Земцов <inz...@gmail.com>:
> Отвечаю сам себе.

извини, я не успел;)


--
Serge Matveenko
se...@matveenko.ru
http://www.ohloh.net/accounts/lig
http://ru.linkedin.com/in/sergematveenko

Иван Земцов

unread,
Nov 11, 2011, 7:29:17 AM11/11/11
to russi...@googlegroups.com
Я только не понял для чего нужен revert.

11 ноября 2011 г. 16:12 пользователь Serge Matveenko <se...@matveenko.ru> написал:



--
С уважением, Иван

Serge Matveenko

unread,
Nov 11, 2011, 7:59:19 AM11/11/11
to russi...@googlegroups.com
2011/11/11 Иван Земцов <inz...@gmail.com>:

> Я только не понял для чего нужен revert.

git revert <commit>

делает обратный коммит.

По сути он берет патч, отражающий указанный коммит, разворачивает его
и добавляет его, как новый. При этом в историю добавляется новый
коммит и при мерже (а значит и при пуше) все пройдет хорошо, не будет
необзодимости делать --force и т.п. revert-нуть можно любой коммит,
не только последний.

Вообще говоря, reset --hard или rebase внутрь истории, которая уже
кому-то отправлена, делать крайне не желательно. Лучше сделать новую
ветку, собрать в ней нужное состояние revert-ами и прочими средствами
и смержить ее в master.

Иван Земцов

unread,
Nov 12, 2011, 3:49:36 AM11/12/11
to russi...@googlegroups.com
Я создал новый файл 1.txt. Закоммитил его, потом сделал revert на 1 шаг назад и файл 1.txt остался.

11 ноября 2011 г. 16:59 пользователь Serge Matveenko <se...@matveenko.ru> написал:



--
С уважением, Иван

Serge Matveenko

unread,
Nov 12, 2011, 6:49:48 AM11/12/11
to russi...@googlegroups.com
2011/11/12 Иван Земцов <inz...@gmail.com>:

> Я создал новый файл 1.txt. Закоммитил его, потом сделал revert на 1 шаг
> назад и файл 1.txt остался.

Что-то сделал не так. Скорее всего не добавил 1.txt.

$ mkdir git1
$ cd git1
$ touch 1.txt
$ ls -1
1.txt
$ git add 1.txt
$ git commit -m 'Add 1.txt.'
$ ls -1
1.txt
$ git revert HEAD
$ ls -1
(пусто)
$ git log --format=oneline
c4a4090723ee85af7e76ff193c2187806f966a12 Revert "Add 1.txt."
4ba4ea753005810d9f8e2fe176990e5e34affc69 Add 1.txt.

ч.т.д., чуда не произошло.

Иван Земцов

unread,
Nov 13, 2011, 11:16:34 PM11/13/11
to russi...@googlegroups.com
Да так сработало, сейчас буду пробовать почему у меня не получилось

12 ноября 2011 г. 15:49 пользователь Serge Matveenko <se...@matveenko.ru> написал:
git revert HEAD



--
С уважением, Иван

Иван Земцов

unread,
Nov 13, 2011, 11:29:09 PM11/13/11
to russi...@googlegroups.com
понял в чем причина, git revert отменяет только коммит который ты указал
если git revert HEAD, то только коммит, с последними изменениями
git revert cf70966, накладывает обратные  изменения только этого коммита .

14 ноября 2011 г. 8:16 пользователь Иван Земцов <inz...@gmail.com> написал:



--
С уважением, Иван

Иван Земцов

unread,
Nov 13, 2011, 11:57:21 PM11/13/11
to russi...@googlegroups.com
git revert --soft cf70966 мягкий возврат на хеш, отменяются коммиты, но изменения в исходниках после cf70966 остаются. Т.е. дает возможность поменять сообщения в коммите и увидеть какие ты файлы добавил или сделал в них изменения.

git -reset --hard cf70966 жестко отменяет все коммиты и изменения после cf70966

14 ноября 2011 г. 8:29 пользователь Иван Земцов <inz...@gmail.com> написал:



--
С уважением, Иван

Serge Matveenko

unread,
Nov 14, 2011, 4:51:55 AM11/14/11
to russi...@googlegroups.com
2011/11/14 Иван Земцов <inz...@gmail.com>:

> git revert --soft cf70966 мягкий возврат на хеш, отменяются коммиты, но
> изменения в исходниках после cf70966 остаются. Т.е. дает возможность
> поменять сообщения в коммите и увидеть какие ты файлы добавил или сделал в
> них изменения.
> git -reset --hard cf70966 жестко отменяет все коммиты и изменения после
> cf70966

Что нового в этих утверждениях по сравнению с документацией?

Иван Земцов

unread,
Nov 14, 2011, 5:20:48 AM11/14/11
to russi...@googlegroups.com
Читая документацию я не понял. Сделав сам понял и отписал как.

14 ноября 2011 г. 13:51 пользователь Serge Matveenko <se...@matveenko.ru> написал:



--
С уважением, Иван

Serge Matveenko

unread,
Nov 14, 2011, 5:22:07 AM11/14/11
to russi...@googlegroups.com
2011/11/14 Иван Земцов <inz...@gmail.com>:

> Сделав сам понял и отписал как.

если вы будете использовать эту рассылку, как личную записную книжку
выдержек из документации, я отпишусь.

Иван Земцов

unread,
Nov 14, 2011, 12:02:36 PM11/14/11
to russi...@googlegroups.com
Так как мне никто не ответил, я ответил сам, так как это может быть полезно другим. Вообще не понимаю, что тут такого.

14 ноября 2011 г. 14:22 пользователь Serge Matveenko <se...@matveenko.ru> написал:



--
С уважением, Иван

Serge Matveenko

unread,
Nov 15, 2011, 3:50:49 AM11/15/11
to russi...@googlegroups.com
2011/11/14 Иван Земцов <inz...@gmail.com>:

> Так как мне никто не ответил, я ответил сам, так как это может быть полезно
> другим. Вообще не понимаю, что тут такого.

Я вас предупредил.

И, кстати, отвечать принято под цитируемым текстом. Взялись быть
ведущим рассылки, так соблюдайте что ли нетикет...

Reply all
Reply to author
Forward
0 new messages