我查看了关于快进的注意事项并了解了fast-forward如何更新分支。但是我想知道non fast-forward是如何更新一个分支的?上面医生说:
例如,假设您和其他人从同一个commit X开始,您构建了一个导致提交B的历史,而另一个人构建了导致提交A的历史。历史如下所示:
B
/
---X---A如果您执行了非快速转发更新,则提交A引入的更改将丢失,因为每个人现在都将开始在B之上构建。
但losing changes introduced by A对我来说还不清楚。non fast-forward是否完全更新overwrite目标分支并从历史记录中删除A?所以历史看起来就像X -- B。还是它只是试图做一个合并?还是会发生新的变化?
发布于 2016-04-20 15:39:22
您必须考虑到链接的页面是关于git push的,也就是说,您正在将本地分支上载到远程服务器。
在这种情况下,执行快速更新是通常的事情:您只需将提交添加到远程分支的尖端。相反,非快速前向更新是在可能添加更多提交之前,从远程分支的尖端删除提交的推送。
所以回答你的问题:
非快速更新是否完全覆盖目标分支并将A从历史记录中删除?
是的,它可以做到这一点。你强迫远程分支看起来和你的本地分支完全一样。
发布于 2016-04-20 15:47:10
是的,如果你那样做了,B会在更新中有效地取代A。通常情况下,你会尝试在A的基础上重新设定B,然后再推。
https://stackoverflow.com/questions/36748564
复制相似问题