搜尋

首頁  >  問答  >  主體

git reset退回指定版本後,怎麼提交上伺服器?

情況是這樣的:

今天發現稍早的一次提交,剛剛發現有些文件被刪除了。

現在要退回指定的版本commit:20a3725c

git reset --hard 20a3725c

然後重新git push時失敗,提示:

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.

現在需要還原到版本20a3725c,該怎麼解決呢?

還有一個問題就是能夠將原本刪除的文件,恢復到目前版本嗎? (因為目前版本有增減某些文件(在其它資料夾,不與被刪文件同一資料夾))

阿神阿神2756 天前996

全部回覆(3)我來回復

  • 淡淡烟草味

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

    回覆
    0
  • 高洛峰

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

    必須要修改下才可以推送。 。 。
    如果你只是要恢復某個版本,可以使用git revert來取消那個提交

    回覆
    0
  • 为情所困

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

    git 恢復'20a3725c
    git 推送

    回覆
    0
  • 取消回覆