Nachdem Git Reset die angegebene Version zurückgegeben hat, wie kann ich sie an den Server senden?
阿神
阿神 2017-06-05 11:08:52
0
3
989

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

阿神
阿神

闭关修行中......

Antworte allen(3)
淡淡烟草味

还没有想到办法解决。

(先备份当前有修改过的文件)

最好,先返回指定版本
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
小葫芦

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

为情所困

git revert '20a3725c
git push

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage