嘿,我是git的新手,我需要撤消pull命令,有人可以帮忙吗?!? 所以我要做的是...
git提交
git stash
git pull --rebase
git stash pop
这造成了一堆冲突,并且出错了。 现在执行" git stash list"显示我的隐藏项仍然存在。 是否可以在执行git commit之后将我的存储库恢复到原来的状态。 因此,我的仓库实际上仅包含我所做的更改,而服务器中没有任何新内容吗?
实际上,为了简化操作,Git保留了一个名为ORIG_HEAD的引用,该引用指向您在重新设置基准之前的位置。 因此,它很简单:
git reset --hard ORIG_HEAD
我几乎失去了一个星期的工作,但这又使它复活了。那就是当其他人重新设置您的分支并强制推入原点而不先拉出您的更改时发生的事情……这对于了解您是否与其他人一起从事任何项目,在其中他们迫使每个人都进行基础而不是合并,这一点绝对重要。改写更清洁的历史记录,变基很危险。
这就是我需要的答案。
使用git reflog,您将看到过去指向的HEAD列表
使用
git checkout -b after-commit HEAD@{1} # or the commit you want to recover
您在该精确位置创建一个新分支并签出
这样做会引发错误,通知我文件将被合并覆盖。有没有办法忽略这一点?
确保您的工作目录是干净的(git reset --hard HEAD会这样做)。另外,请确保不再进行重新设置(git rebase --abort)。
您我的朋友是救生员!谢谢 :)
去过也做过!我想我已经用git做了所有可以做到的事。 Git是没有保护装置的锯,可轻松切断自己的手臂。但是它还带有一个简单的手臂重新安装套件,如果需要,您甚至可以将手臂连接到膝盖。
您可以结合使用checkout和reset命令,只需执行git reset --hard HEAD@{1}
@pat:这也会移动分支,分别使用reset和checkout仍然有旧分支(如果您不知道自己在做什么,这会更安全一些)
@ wayne-conrad,我可以在" ...将手臂连接到膝盖"上引用您吗?
@Gonen,我很荣幸。拜托
您应该签出命令
git reset --merge
这消除了git commit的需要; 拉动之前git stash(虽然不知道变基)
该命令返回一个工作空间,该工作空间在发生冲突的拉动之前具有未提交的状态更改。
使用git log -g并找到您想返回的提交索引,只需做git checkout索引
这实际上没有帮助,因为pull --rebase在刚刚提取的内容之上回放您的提交;在这种情况下,您不能仅签出您的旧提交,因为它位于您刚刚拉出的提交之上。