【问题标题】:Ignoring 2 commits after a 'git reset --hard' command [duplicate]在“git reset --hard”命令后忽略 2 次提交 [重复]
【发布时间】:2015-12-03 13:52:33
【问题描述】:

我是 Git 的初学者。所以这是场景,在一个空的文本文件中,我添加了One String 并执行了以下命令:

git init
git add sample.txt
git commit -m "Added One"
git push origin master

接下来,我在下一行添加了Two,并执行了以下命令:

git add sample.txt
git commit -m "Added Two"
git push origin master

直到Three 使它包含:

One
Two
Three

然后我执行git reset --hard 'value of the first commit here' 带回包含One 的文件并添加Four 使其:

One
Four

所以当我执行提交和推送时,显示以下错误:

Updates were rejected because the tip of your current branch is behind its remote counterpart.

如何推送我的提交拒绝其他 2 个提交,以便最终文本文件包含:

One
Four

【问题讨论】:

    标签: git git-bash


    【解决方案1】:

    您需要“强制推送”,以强制将 origin 上的分支替换为您的本地分支:

    git push -f
    

    【讨论】:

    • 使用这个命令有什么后果吗?
    • 您显然会丢失您覆盖的提交,并且共享您的存储库的任何人都必须将其分支重置为与您相同的状态。
    • 是否有任何命令可以执行此操作并在日志中保留提交。我执行了git log,但在日志中删除了 2 个提交。
    • @ajdeguzman 不,这没有任何意义。您不能既保留分支中的提交,又保留分支中的提交。如果您想保留对这些提交的引用,请查看一个新分支。
    猜你喜欢
    • 2011-12-19
    • 2019-06-30
    • 2018-05-30
    • 2018-09-21
    • 2018-06-14
    • 2017-03-21
    • 2020-11-16
    • 2015-09-15
    • 2011-08-19
    相关资源
    最近更新 更多