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....
請問這個需要怎麼解決呀 ?
先指出你的錯誤之處:
如果你沒有將本地的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