Восстановите мое приложение с помощью git - PullRequest
2 голосов
/ 09 марта 2011

Я хочу восстановить в моем приложении старый коммит, который я сделал.

Я делаю коммиты так:

git commit -m "бла"

Когда я нажимаю "git log", я вижу все сделанные мной коммиты.

Как мне восстановить приложение с помощью git?

EDIT:

Я сделал git push (к героку), и он сказал:

    error: failed to push some refs to 'git@heroku.com:asfalt.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.  See the
'Note about fast-forwards' section of 'git push --help' for details.

Ответы [ 3 ]

3 голосов
/ 09 марта 2011

Зависит от того, хотите ли вы временно вернуться к старому коммиту, или вы хотите навсегда выбросить все после старого коммита?

Для временного переезда:

git checkout <old commit SHA>

(Примечание: это сделает так, чтобы вы не входили ни в какую конкретную ветку. Если вы решите, что хотите сделать коммит после этого, вам сначала нужно будет создать ветку.)

Чтобы выбросить все после коммита:

git reset --hard <old commit SHA>
1 голос
/ 09 марта 2011

Используйте git log, чтобы найти SHA1-хеш коммита, к которому вы хотите вернуться (похоже на 9fcf42cb3dcc78e8c62ee1714ee27d42f1275384), и используйте:

git checkout 9fcf42cb3dcc78e8c62ee1714ee27d42f1275384  

Это отсоединит вашу ГОЛОВУ, поэтому будьте осторожны, если вы делаете коммиты поверх этой (используйте git branch -b newbranch после проверки, чтобы избежать этого).

1 голос
/ 09 марта 2011

Когда вы делаете git log, вы видите коммиты, сделанные вами с помощью ша, например:

commit 7df7855f2f74007c1d0359f7218be446dd7633e8

Используйте sha, чтобы отменить изменения, которые вы хотите откатить. Например,

git revert 7df7855f2f74007c1d0359f7218be446dd7633e8
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...