我reset回first commit. 然后修改了,再提交。就不行了
更新如下,其实我只是想实现svn的功能。提取版本一,作了修改,然后push,生成了版本三,而不是直接覆盖了版本二
学习是最好的投资!
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
git reset 适合在自己的分支中进行操作,当分支已经合并到远程版本库后,不建议再进行此操作。
如果远程版本库不会影响其它人更新合并(一个人的远程版本库)可以用git -f push强制推送到远程版本库。
svn与git对于history的概念差别非常大。
git的push操作,相当于把当前分支合并到远程分支上。卤煮的操作实际上是这样
那么卤煮是想把从first commit后完全不同的分支合并起来,你想想remote能答应吗?如果希望合并,卤煮可以在当前分支下进行合并,例如
又或者用本地分支替换掉remote的分支
建议详读"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