Heim > Fragen und Antworten > Hauptteil
1 . master 有四条分支.....
4. fffff
3. qqqq
2. xxxx
1. aaaa
本地基于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
----
强行推送到远程的orign master, 本地的dev分支覆盖远程的 origin master
git push -f origin master
这个时候报everything up to date....
请问这个需要怎么解决呀 ?
某草草2017-05-02 09:54:14
首先指出你的错误之处:
本地的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的问答质量。
曾经蜡笔没有小新2017-05-02 09:54:14
"master 有四条分支"这句话实在是看不懂, 你是想说四条commit
?
当本地记录与远程记录不一致时, 请先pull
, 在本地解决好冲突之后在push
, 不要强行push