git everything up to date出错了... 明明有差异就是提交不了

阿飞i
  • 628

1 . master 有四条分支.....

4. fffff
3. qqqq
2. xxxx
1. aaaa
  1. 本地基于master创建了一个新的分支dev
    删除了两条原有的commit....

   git reset --hard aaaa
   git cherry-pick fffff
   git log --oneline
    ----
        2. ffff
        1. aaaa
    ----
    然后做了一些修改...  新增了一条commit
    ----
        3. wwww
        2. ffff
        1. aaaa
    ----
    
  1. 强行推送到远程的orign master, 本地的dev分支覆盖远程的 origin master

git push -f origin master

这个时候报everything up to date....

请问这个需要怎么解决呀 ?

回复
阅读 3.6k
2 个回答
退休码农飞伯德
  • 1.2k
✓ 已被采纳

首先指出你的错误之处:

本地的dev分支覆盖远程的 origin master

如果你没有将本地的dev分支的上游分支设置为远程的master分支的话,是没有办法用git push -f origin master强制让让dev覆盖远程的master分支的。git push命令是将本地分支推送到与其对应的上游分支,比如你本地的master分支默认的上游分支是远程的master分支,所以你用git push -f origin master命令是将本地master领先于远程master的提交推送到远程,而你本地的master根本没有领先远程,所以git当然提示“everything up to date....”,而领先的是你的dev分支。

从你的问题中,我根本无法得知你到底要干什么,只是问如何解决目前遇到的问题。git并没有出错,只是你没有理解git的操作过程,所以你才觉得遇到了问题。

给你提两个建议:

  • 提问时,最好要将你的目的明确写出来。因为如果你的目的不对,我们也将会在你错误的道路上帮助你继续前进,直到你遇到更多的问题。当然,如果你说你的目的是“解决问题”,那我觉得这是废话,我这里说的目的是做某件事的目的。如果想知道如何智慧的提问,建议看看这个:https://github.com/ryanhanwu/...

  • 在使用git进行工作之前,最好先先理解git基本的概念和操作。当然,如果你现在就是在学的话,那就在好好看看书吧,建议Progit这本书。

不要抱怨我们的回答,因为我们并未对回答要求任何报酬。其实,我也只是希望能提高segmentfault的问答质量。

"master 有四条分支"这句话实在是看不懂, 你是想说四条commit?

当本地记录与远程记录不一致时, 请先pull, 在本地解决好冲突之后在push, 不要强行push

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏