【问题标题】:How to revert/reset local master to HEAD?如何将本地主机恢复/重置为 HEAD?
【发布时间】:2016-05-05 08:37:08
【问题描述】:

我正在尝试将较旧的提交推送到 heroku/master,但如果我没记错的话 git push 会将本地 master 推送到远程仓库。所以我试图让我当地的主人与我的 HEAD 相匹配。

我正在尝试在不丢失我所做的提交的情况下做到这一点,因此我可能可以在需要时返回它们。

我尝试过的事情:

# this only set my HEAD on the wanted commit.
$ git reset --hard HEAD
$ git reset --hard 055c700

# this made a new branch called HEAD instead of my actual HEAD, which was a pain to delete afterwards 
$ git checkout -B "HEAD" "master"

【问题讨论】:

    标签: git heroku master git-reset


    【解决方案1】:

    最简单的方法是:

    1. 将您的HEAD 指向您的master 第一个$ git checkout master
    2. 复制分支$ git checkout -b new_master
    3. 检查master 分支$ git checkout master
    4. 重置为您希望您的主人指向$ git reset --hard <commit-number> 在您的情况下为$ git reset --hard 055c700 的提交
    5. 强制推送 master 到 heroku $ git push -f heroku master
    6. 删除分支new_master

    您似乎将 HEAD 一词混淆为实际的分支。 HEAD 只是指向您所在的当前分支的最后一次提交的指针。所以创建一个名为 HEAD 的分支不会有任何效果。如果您在分支 HEAD 上,则指针 HEAD 将位于最后一次提交处。如果您在 master 上,它将指向 master 中的最后一次提交

    【讨论】:

    • 第5步你不是说删除分支new_master吗?
    • 第 3 步也应该是 new_master 而不是 master,对吗?
    • 不,这是正确的。应该是master。您的主分支将被重置为提交 055c700
    • 好的问题是master 分支包含一个错误,heroku 不允许我部署,来自该分支的每次推送都被拒绝。所以我仍然停留在第 3 步。 --> i.imgur.com/Az9h96Y.png
    • @masukomi 只是想给出一个简单的解释
    猜你喜欢
    • 2019-11-27
    • 2022-11-30
    • 2012-10-25
    • 2021-09-10
    • 1970-01-01
    • 1970-01-01
    • 2016-04-12
    • 2016-10-23
    • 1970-01-01
    相关资源
    最近更新 更多