Git can';休息后不要用力推——一切都是最新的

Git can';休息后不要用力推——一切都是最新的,git,Git,提交后,我更改了代码,但我不想保留更改,所以我努力休息 git重置-硬29920a13b3563b8到我的最后一次提交 然后,我做了一些新的更改,提交,当我尝试推送时,git显示一切都是最新的 然后我尝试了git remote set head origin master,现在我遇到了一个情况: commit dd0238f3f02986a82078191e04378487b327cfd0 (HEAD) Author:... Date: Thu May 6 18:07:09 2021 +03

提交后,我更改了代码,但我不想保留更改,所以我努力休息
git重置-硬29920a13b3563b8
到我的最后一次提交

然后,我做了一些新的更改,提交,当我尝试推送时,git显示一切都是最新的

然后我尝试了
git remote set head origin master
,现在我遇到了一个情况:

commit dd0238f3f02986a82078191e04378487b327cfd0 (HEAD)
Author:...
Date:   Thu May 6 18:07:09 2021 +0300

    My newest commit 

commit 29920a13b3563b8df16da91de452fea936be9c5a (origin/master, origin/HEAD, master)
Author: ...
Date:   Wed May 5 15:53:50 2021 +0300

    My last commit

commit cd21723ca691e1269e8bac318ec16cf076e24b21
Author: ....
Date:   Wed May 5 11:13:52 2021 +0300

    Older commit
  • 其中头部位于来自原点/头部的另一个提交位置

  • 使用
    设置磁头原点母版
    ,创建原点/母版!(我只有出身/头部)


  • 如何解决这个问题?

    您的
    git日志输出显示您处于分离头部模式。这意味着您需要将提交的提交哈希ID保存在您现在所在的位置,以防万一,使用新的分支或标记名。例如:

    git branch save-this
    
    将创建一个新的分支名称以记住
    dd0238f3f02986a82078191e04378487b327cfd0
    。(除非你让Git帮你记住这个,否则你必须记住足够多的这串字母和数字,以便以后重建。)

    接下来,使用<代码> Git状态查看是否处于某个操作的中间,使您处于这种模式。如果是这样,根据需要完成(finish)或终止(例如,

    git rebase--abort
    )操作,您可能会退出此模式。如果没有,或者如果完成或中止操作仍然使您处于分离头部模式,请使用
    git checkout master
    返回分支
    master
    。这使您可以使用commit
    dd0238f3f02986a82078191e04378487b327cfd0
    而不启用
    master
    ,这就是为什么我们命名来记住那个丑陋的大哈希ID

    现在,您可以尝试直接将新提交添加到
    master

    git merge --ff-only save-this
    
    如果可能的话,它会将您的
    主机
    快进到提交。(根据您在此处的
    git log
    输出,可能是这样,尽管我不能确定,因为我看不到您运行的特定
    git log
    命令。)如果这样做有效,您现在可以运行:

    git push origin master
    
    要将此新提交发送到另一个Git存储库,并要求该Git存储库更新其
    主文件
    。如果所有这些都奏效了,现在是时候删除不再需要的名称
    保存此
    ,使用:

    git branch -d save-this
    

    如果在此过程中出现问题,那么,如果/当它发生时,我们将返回到该问题。

    您的
    git日志输出显示您处于分离头部模式。这意味着您需要将提交的提交哈希ID保存在您现在所在的位置,以防万一,使用新的分支或标记名。例如:

    git branch save-this
    
    将创建一个新的分支名称以记住
    dd0238f3f02986a82078191e04378487b327cfd0
    。(除非你让Git帮你记住这个,否则你必须记住足够多的这串字母和数字,以便以后重建。)

    接下来,使用<代码> Git状态查看是否处于某个操作的中间,使您处于这种模式。如果是这样,根据需要完成(finish)或终止(例如,

    git rebase--abort
    )操作,您可能会退出此模式。如果没有,或者如果完成或中止操作仍然使您处于分离头部模式,请使用
    git checkout master
    返回分支
    master
    。这使您可以使用commit
    dd0238f3f02986a82078191e04378487b327cfd0
    而不启用
    master
    ,这就是为什么我们命名来记住那个丑陋的大哈希ID

    现在,您可以尝试直接将新提交添加到
    master

    git merge --ff-only save-this
    
    如果可能的话,它会将您的
    主机
    快进到提交。(根据您在此处的
    git log
    输出,可能是这样,尽管我不能确定,因为我看不到您运行的特定
    git log
    命令。)如果这样做有效,您现在可以运行:

    git push origin master
    
    要将此新提交发送到另一个Git存储库,并要求该Git存储库更新其
    主文件
    。如果所有这些都奏效了,现在是时候删除不再需要的名称
    保存此
    ,使用:

    git branch -d save-this
    

    如果在这个过程中出现了问题,那么,如果/当它发生时,我们将回到这个问题上来。

    谢谢!现在很好用!我最近一次提交
    (HEAD->master,origin/master,origin/HEAD)
    。这样行吗?我的意思是,我不记得我是否同时拥有
    origin/master
    origin/HEAD
    。这很正常:
    origin/HEAD
    是你的Git记住哪个分支是你的“主”分支的方式,来自
    origin/master
    origin/master
    是你的Git记住“他们的
    master
    在哪里,上次我看到它时”,而
    HEAD->master
    git-log
    的说法,意思是你自己掌握了
    master
    。这三个名称现在通过哈希ID标识相同的提交,这正是我们所希望的。:-:嗯……我们有麻烦了!在那之后,我做出了一些承诺,现在,当我试图推动时,我又陷入了同样的境地!HEAD在最后一次提交时,
    (HEAD->master,origin/master,origin/HEAD)
    ,在我上次推送的提交时!所以,解决方案似乎不是永久性的!如果您将
    HEAD->master、origin/master、origin/HEAD
    作为当前提交的装饰,那么您的Git此时认为您的
    master
    origin
    master
    完全同步。运行
    git fetch origin
    ,以更新git对
    origin
    的git存储库的视图,以防该存储库过期;如果它们仍然像这样同步,那么您已经成功地推送了您自己的
    master
    上所做的任何提交,并且您遇到的任何问题都不是推送失败造成的。:否,
    HEAD->master,origin/master,origin/HEAD,master
    在我推送时处于上一个提交状态。从那以后,我又做了两次承诺,现在我想推动。我现在最后的承诺