如题这个问题,麻烦帮忙看看git reset后导致git push需要加-f的问题?

打入a补丁,commit后push到服务器,发现a补丁没有完全解决问题,reset掉后打入正确的补丁,commit没问题,push到服务器的时候需要加-f,强制覆盖服务器端的代码。有没有办法在使用reset的同时不需要强制覆盖服务器端的代码?
或者在git push -f后会对软件代码集成人员带去什么麻烦?

蓝山帝景
浏览 498回答 2
2回答

手掌心

打入补丁A,COMMIT后PUSH到服务器,这时候HEAD是节点1-A。Reset后,打入正确补丁,PUSH -F到服务器,就会把刚才HEAD的节点1-A删除掉,变成2-A了。问题是:如果有人在你节点1-A的时候PULL了,然后你把1-A删除换成了2-A,下次再PULL的时候,因为他是有节点1-A的,那就会出现冲突。最正确的解决方法是,在1-A的节点上,再打一次补丁,变成1-B,然后用rebase -i 把两个commit merge到一起就可以了。

HUWWW

不能,之前的a已经push到服务器了。
打开App,查看更多内容
随时随地看视频慕课网APP