当我找到我的 错误在远程分支的错误,我总是删除它,在本地压缩并再次推送.因为我听说'git push -f'很危险.但是我注意到git fetch之后的推送结果显示如下.
新BRANCH_NAME"(强制)"
我的工作流程再次删除和推送是否正确?这种方式与'push -f'有什么不同?
ant*_*tak 11
在功能上,删除和再次推送至少是危险的git push -f.
但是,删除和再次推送实际上比git -f push一个非常具体的原因更糟糕:
至少在git -f push,替换是原子的.
虽然,当你独自工作时,这不是什么大问题.
git -f push,您会被告知在结果消息中发生了什么替换:X...Y branch ->
branch (forced update).从那里,你可以确保X真正的意义是吹走.git push origin :branch && git push origin branch,你不能真正告诉你删除了什么,如果你不是绝对唯一可能推动的人branch.不,首先删除远程分支不会使它更安全或其他任何东西。
强制推送危险的原因是工作流程原因,而不是技术原因。如果有人拉了你错误的分支,那么你强行推送分支上正确的更改集,这可能会对他们的历史和他们在分支上所做的任何更改造成严重破坏,因为他们的拉动将不再快进(除非他们修复他们的错误分支强行拉动或者如果他们重新调整他们的更改),这可能意味着他们可能会再次重新引入错误的更改。在只有一个提交者的团队中,这通常不会成为什么大问题,对于较大的项目,有很多提交者和许多观察者,那么出现问题的可能性要大得多,因为可能不仅仅是一两个人'已经下载了错误的分支。
| 归档时间: |
|
| 查看次数: |
3987 次 |
| 最近记录: |