Heim > Fragen und Antworten > Hauptteil
Die Situation ist wie folgt:
Ich habe heute eine frühere Einreichung gefunden und gerade festgestellt, dass einige Dateien gelöscht wurden.
Jetzt wollen wir das angegebene Versions-Commit zurückgeben:20a3725c
git reset --hard 20a3725c
Dann scheiterte der erneute Versuch git push
, Eingabeaufforderung:
To git@xxx/xxx.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@xxx/xxx.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Jetzt müssen wir die Version 20a3725c
wiederherstellen. Wie lässt sich das Problem lösen?
Eine weitere Frage ist: Können die ursprünglich gelöschten Dateien in der aktuellen Version wiederhergestellt werden? (Weil die aktuelle Version einige Dateien hinzugefügt oder gelöscht hat (in anderen Ordnern, nicht im selben Ordner wie die gelöschten Dateien))
淡淡烟草味2017-06-05 11:10:52
还没有想到办法解决。
(先备份当前有修改过的文件)
最好,先返回指定版本git reset old_commit_id
然后,新建分支 git branch -b rcommit_id
再,删除线上的master
分支(将默认分支切换到其它分支)git push origin :master
然后,将之前备份的文件覆盖当前分支内的文件。
最后,将分支名改为master
,再提交即可,再设置为默认分支。
git branch -m rcommit_id master
git push origin master