suchen

Heim  >  Fragen und Antworten  >  Hauptteil

Nachdem Git Reset die angegebene Version zurückgegeben hat, wie kann ich sie an den Server senden?

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))

阿神阿神2755 Tage vor995

Antworte allen(3)Ich werde antworten

  • 淡淡烟草味

    淡淡烟草味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

    Antwort
    0
  • 高洛峰

    高洛峰2017-06-05 11:10:52

    必须要修改下才可以推送。。。
    如果你只是要恢复某个版本,可以使用git revert来把那个提交取消掉

    Antwort
    0
  • 为情所困

    为情所困2017-06-05 11:10:52

    git revert '20a3725c
    git push

    Antwort
    0
  • StornierenAntwort