安全工作流
git push
(无
--force
)推出恶意代码,然后另一个成员执行git pull
,他可以注意到他已经下载(或拉动)一些新的东西:
$ git diff 71bbeab..984e12a
在他对差异不怀疑的情况下,他可以选择不盲目类型
make
,这可能会执行恶意代码。
unsafe?工作流方法与上述情况相同,除了恶意成员执行
git push --force
在这种情况下,其他成员仍然总是有可能的
注意行动
和检查实际差异吗?
git pull
在拉动通过forced update
git push --force
:
+ 31674dc...71bbeab master -> origin/master (forced update)
在第二点上,就我测试而言,似乎他们也可以检查差异,因为git pull
要么由于合并冲突而失败,要么成功,但是显示了上面的安全工作流中所示的diff,尽管我不知道有任何可控制者可以控制的方法可以使git
显示
git
表现
71bbeab..984e12a
frakediff.Edit:在评论中讨论的问题是,这个问题是关于安全考虑的,因此“至于我测试”还不够;我们知道,必须在理论上和经验上或实验上回答安全问题。这就是为什么我也明确写了
尽管我不知道有任何可控制的方法可以使显示
git pull --quiet
commits是通过验证其内容和父母的哈希唯一标识的。因此,可以始终检测到任何推动动作(所谓的“恶意”):您获取的分支尖端的哈希将改变。没有任何规定。在您的问题中粘贴的输出:您可以在origin/master
中看到两个sha。 在事实后检查(例如,您关闭了第一个终端,或ran
git reflog origin/master
origin/master
),您可以运行:
git fetch
查看所看到的各种更新 - 例如:每次跑步时如何更新的历史记录。
在您有这两个提交标识符时,您可以:
直接比较他们的内容:
git pull
compare他们的历史:
git reflog
或
git help reflog
提供各种额外的东西...