【发布时间】:2019-07-14 11:38:27
【问题描述】:
我尝试通过以下命令将提交推送到我的 gitlab 存储库(我将在执行过程中描述输出):git checkout origin 没有名为 origin 的分支git checkout -b origingit status git add README.mdgit add src/example.ipynbgit add src/.ipynb_checkpoints/git commit -m notebook updategit push origin master 这就是我意识到我可能处于超然状态并切换到主人的地方
@987654329 @git status 仍未显示更改git log -1git checkout mastergit reset --hard 44263cc6fd2bd60be54da344a6d344eb3c42a03agit push origin master
当我注意到我的本地笔记本文件恢复到旧版本时,我尝试通过执行以下操作恢复上次发布的提交git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative --allgit revert 407302e
然后我运行 git revert 得到以下错误:
error: your local changes would be overwritten by revert.hint: commit your changes or stash them to proceed.fatal: revert failed
所以您可以看到一系列错误的决定让我来到这里,我该如何恢复我的文件中的更改?谢谢
【问题讨论】:
-
作为旁注,虽然你在技术上可以命名一个分支
origin,但我担心这只会导致潜在的错误和混乱,因为在 git 中非常常见的用法world 将此名称用于 repo 的源远程。如果不是你创建了这个 repo,很可能有人会在未来的某个时候,这种异想天开的命名可能会将他们推入致命的“假设陷阱”。 -
您要恢复的更改可能仍在您创建的名为
origin的分支中。试试git show origin,它应该会显示您所做的更改。如果是这样,git checkout origin将带您回到可以查看更改的地方。那我建议你放弃这个沙箱,把修改过的文件复制到一个新的沙箱里,你可以把它们提交到master,这可能就是你想要的地方。
标签: git gitlab git-commit git-push git-revert