将较旧的提交推送到github后转到当前状态
如果标题不清楚,很抱歉。我不知道该写什么。 我想问的是,我正在做一个项目,几天前我做了一个承诺,但没有推动它。从那以后,我对代码做了很多修改,甚至还添加了很多文件。昨天,我决定将代码推入github。在这样做的时候,我首先将之前创建的提交推送到github中。但现在我的回购协议已经重置为之前的承诺。自从那次提交之后,我所做的所有更改和创建的新文件都消失了。将较旧的提交推送到github后转到当前状态,git,github,Git,Github,如果标题不清楚,很抱歉。我不知道该写什么。 我想问的是,我正在做一个项目,几天前我做了一个承诺,但没有推动它。从那以后,我对代码做了很多修改,甚至还添加了很多文件。昨天,我决定将代码推入github。在这样做的时候,我首先将之前创建的提交推送到github中。但现在我的回购协议已经重置为之前的承诺。自从那次提交之后,我所做的所有更改和创建的新文件都消失了。 我想知道是否所有的更改和文件都永久消失了?如果没有,如何取回它?尝试使用git reflog。这应该会给你一个类似于下面的列表 更重要的是
我想知道是否所有的更改和文件都永久消失了?如果没有,如何取回它?尝试使用
git reflog
。这应该会给你一个类似于下面的列表
更重要的是,它会跟踪您所执行的触发头部指针变化的操作
如果要重置回以前的某个状态,请在执行拉取操作之前说。。。或者在你做了一个糟糕的git重置之前——很难…
您可以在此列表中找到触发工作目录更改的操作,然后在此操作之前使用以下命令将其重置为HEAD
:
git reset --hard HEAD@{4}
标题{4}
以上只是一个示例,您必须将其替换为您想要返回的任何头部尝试使用git reflog
。这应该会给你一个类似于下面的列表
更重要的是,它会跟踪您所执行的触发头部指针变化的操作
如果要重置回以前的某个状态,请在执行拉取操作之前说。。。或者在你做了一个糟糕的git重置之前——很难…
您可以在此列表中找到触发工作目录更改的操作,然后在此操作之前使用以下命令将其重置为HEAD
:
git reset --hard HEAD@{4}
标题{4}
以上仅是一个示例,您必须将其替换为您想要返回的任何头部。git checkout
是否将您的更改带回?这是将副本重置为给定分支头的正常方法。另外,git push
会沿当前分支隐式推送所有不在远程repo中的提交,因此通常不需要推送单个较旧的提交。不,git checkout不会带回我的更改。这就是问题所在,我没有做出新的承诺。我刚刚推了旧的。你也提交了其他更改吗?git status的输出是什么。你用树枝吗?git branch-vv的输出是什么?当您将de推送到github时,我猜它要求您更新本地存储库。您是否执行了git pull
?如果您使用的是GUI,请检查它是否已自动隐藏所有更改。在这种情况下,您只需弹出stashDoesgit checkout
即可将更改带回?这是将副本重置为给定分支头的正常方法。另外,git push
会沿当前分支隐式推送所有不在远程repo中的提交,因此通常不需要推送单个较旧的提交。不,git checkout不会带回我的更改。这就是问题所在,我没有做出新的承诺。我刚刚推了旧的。你也提交了其他更改吗?git status的输出是什么。你用树枝吗?git branch-vv的输出是什么?当您将de推送到github时,我猜它要求您更新本地存储库。您是否执行了git pull
?如果您使用的是GUI,请检查它是否已自动隐藏所有更改。在这种情况下,你只需要打开那个储藏室