Bash 为什么在执行git pull之后需要修补(或应用)diff

Bash 为什么在执行git pull之后需要修补(或应用)diff,bash,git,github,Bash,Git,Github,我有一个永远不会对其进行本地更改的主分支,我有一个远程源/主分支,我从那里获得所有更改。我的公司执行此操作的脚本如下所示: 吉特拉力 git diff master..origin/master>p1 patch

我有一个永远不会对其进行本地更改的主分支,我有一个远程源/主分支,我从那里获得所有更改。我的公司执行此操作的脚本如下所示:

吉特拉力

git diff master..origin/master>p1
patch git添加

git提交


我的问题是:为什么需要手动修补(或应用)差异,以便从origin/master获得新的更改?最初的“git pull”不是已经确保master从origin/master获得了所有新的更改,并且差异被合并了吗?

这是一种非常糟糕的从origin提取的方法,因为它将创建单独的提交,所以即使代码相同,master和origin/master也会有不同的提交。这根本不是git应该如何使用的

git pull
这就是你所需要的。此脚本试图重新发明轮子,可能是由不太了解git的人编写的。

一般来说不需要。如果由
master
origin/master
标识的提交之间存在任何差异,则补丁程序将生成更改
master
以匹配
origin/master
的指令,因此应用补丁程序将更改它们以匹配。但是,如果您从这样的状态开始,并且从不进行任何更改,那么diff应该永远不会有任何差异,除非上游从历史中删除了提交。如果这不会发生,这里给出的过程是没有意义的。如果这会发生,无论如何,还有一个更好的过程。