git reset --hard HEAD@{1}的解释

  1. 初始状态

    • 远程仓库:a + b
    • 本地仓库:a + c
  2. 提交本地更改

    • 将本地的 a + c 提交到本地仓库,但还没有推送到远程仓库。
    • 本地仓库:a + c
    • 远程仓库:a + b  倒数第二次提交
  3. 拉取远程仓库

    • 执行 git pull
    • 由于 b 和 c 有冲突,Git 无法自动合并,手动解决冲突,保留了它俩需要的部分
    • 本地仓库现在变成了 a + b + c
    • 本地仓库:a + b + c
    • 远程仓库:a + b
  4. 推送更改

    • 将 a + b + c 推送到远程仓库。
    • 远程仓库:a + b + c  这是最后一次提交
    • 本地仓库:a + b + c
  5. 执行 git reset --hard HEAD@{1}

    • 执行 git reset --hard HEAD@{1},这将你的本地仓库回退到上一个提交的状态,倒数第二次的提交 a + b
    • 本地仓库:a + b
    • 远程仓库:a + b + c
  6. 拉取远程仓库

    • 执行 git pull
    • 本地仓库现在变成了 a + b + c
    • 本地仓库:a + b + c
    • 远程仓库:a + b + c
  7. 再次提交 a + b + c

    • 再次提交 a + b + c 的更改。由于本地已经是 a + b + c,再次提交相同的状态不会有任何变化。
    • 本地仓库:a + b + c
    • 远程仓库:a + b + c

git reset --hard HEAD@{1} 主要作用是回退到最后一次提交的前一次,即倒数第二次,且只改变了本地仓库代码的状态,远程仓库代码的状态不变。(PS:此命令使用前提,团队成员没有人拉取或提交,否则就会发生不可预估的结果。)

!!!!一定要注意使用前提!!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值