github - git reset 回溯的問題
PHPz
PHPz 2017-04-21 11:16:09
0
4
861

我reset回first commit.
然後修改了,再提交。就不行了

更新如下,其實我隻是想實現svn的功能。提取版本一,作了修改,然後push,生成了版本三,而不是直接覆蓋了版本二

PHPz
PHPz

学习是最好的投资!

全部回覆(4)
Peter_Zhu

git reset 適合在自己的分支中進行操作,當分支已經合併到遠端版本庫後,不建議再進行此操作。
如果遠端版本庫不會影響其它人更新合併(一個人的遠端版本庫)可以用git -f push強制推送到遠端版本庫。

大家讲道理

svn與git對於history的概念差異非常大。
git的push操作,相當於把目前分支合併到遠端分支上。鹵煮的操作其實是這樣

开始是这样:    o--o--o--o--o
后来reset:    o
再后来:    o
            \
             x--x

那麼滷煮是想把從first commit後完全不同的分支合併起來,你想想remote能答應嗎?如果希望合併,鹵煮可以在目前分支下進行合併,例如

git merge|rebase origin/current_branch #当然在与remote进行合并的时候,尽量不使用rebase这样对history有“破坏”的操作
# 接下来解决一系列冲突
git push ...

又或用本地分支替換掉remote的分支

git push origin current_branch -f

建議詳讀"Pro Git"這本書,會很有幫助的。
英文: http://git-scm.com/book/
中文: http://git-scm.com/book/zh

伊谢尔伦

利用git push -f或git revert,詳見:
git push -f

黄舟

這樣直接刪除遠端分支太暴力了,可以參考這篇部落格的解決方案http://blog.mtxcxin.cn/blog/git如何回滾遠端倉庫.html

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板