代码之家  ›  专栏  ›  技术社区  ›  George

休息后不能用力推——一切都是最新的

git
  •  0
  • George  · 技术社区  · 5 年前

    提交后,我更改了代码,但我不想保留这些更改,所以我努力休息 git reset -hard 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
    
    1. 头部位于另一个从原点/头部提交的位置

    2. 和 set-head origin master ,创建了源代码/主代码!(我只有出身/头部)

    我该怎么解决这个问题?

    0 回复  |  直到 5 年前
        1
  •  2
  •   torek    5 年前

    你的 git log 输出显示您处于状态 分离头 模式这意味着你需要 保存提交哈希ID 为了以防万一,请使用新的分支或标记名。例如:

    git branch save-this
    

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

    接下来,使用 git status 看看你是否处于某个操作的中间 在里面 这种模式。如果是,则完成(完成)或终止(例如。, git rebase --abort )如果操作合适,您可能会退出此模式。如果没有,或者如果完成或中止操作,仍然会离开您 在里面 分离头部模式——使用 git checkout master 回到布兰奇 master .这让你有责任 dd0238f3f02986a82078191e04378487b327cfd0 不 在…上 主人 ,这就是为什么我们命名来记住那个丑陋的大哈希ID。

    现在可以尝试添加新的提交 到 主人 直接:

    git merge --ff-only save-this
    

    哪个会 快进 你的 主人 如果可能的话,我会去做的。(根据你的观点,可能是这样的。) git日志 输出在这里,虽然我不能确定,因为我看不到具体的 git日志 您运行的命令。)如果成功,您现在可以运行:

    git push origin master
    

    将此新提交发送到另一个Git存储库,并要求该Git存储库更新其 主人 .如果所有这些都奏效了,现在是时候删除不再需要的名字了 save-this ,使用:

    git branch -d save-this
    

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