GitHub是否会将存储库最新拉取/获取/克隆的时间(至少对于具有写入访问权限的用户)公开?当然,这种信息的兴趣在于想要衡量在存储库上执行
也许一个例子可以澄清我的问题。为简单起见,假设只有一个本地分支(
首先考虑一个完全本地的场景:我进行了提交,不久之后意识到这次提交存在问题。在这种情况下,我只需使用
现在想象完全相同的场景,唯一的区别是,在注意到提交存在问题之前,我将错误的提交推送到了远程(GitHub)存储库。
如果我是此存储库的唯一用户,则可以像以前一样在本地覆盖提交,然后使用
但是,如果我不是此存储库的唯一用户,则上述过程存在问题,因为不同的用户可能已经在我将错误的提交推送到远程存储库之后的某个时间从远程(GitHub)存储库克隆或获取了数据。
最小化此可能性的一种方法是检查自从我将错误的提交推送到该存储库以来对远程存储库执行的所有拉取、获取和克隆操作的记录。如果此记录显示其中至少有一个这样的操作,则表示我们恰好遇到了上一段中描述的问题场景。
另一方面,如果记录未显示任何此类操作,则仍然有希望在不遇到前面描述的问题场景的情况下覆盖远程存储库中的错误提交。(当然,这是一种竞争条件,因此不能保证100%。)
然而,所有这些都是基于是否有这样的拉取、获取和克隆操作记录可用。我的问题是GitHub是否会公开此类记录,至少对于具有写入访问权限的用户。
git push -f
操作的安全性,该操作实际上会覆盖最近的几个提交:如果自从要被覆盖的最早提交被推送到GitHub以来没有进行过任何拉取/获取/克隆,则覆盖可能是可以接受的...也许一个例子可以澄清我的问题。为简单起见,假设只有一个本地分支(
master
)和一个远程分支(origin/master
)。 (也就是说,远程存储库只有一个分支,并且我正在使用唯一的本地分支跟踪它。)首先考虑一个完全本地的场景:我进行了提交,不久之后意识到这次提交存在问题。在这种情况下,我只需使用
git commit --amend ...
命令用正确的提交内容覆盖此提交。现在想象完全相同的场景,唯一的区别是,在注意到提交存在问题之前,我将错误的提交推送到了远程(GitHub)存储库。
如果我是此存储库的唯一用户,则可以像以前一样在本地覆盖提交,然后使用
git push -f ...
命令来覆盖远程(GitHub)存储库中的错误提交。但是,如果我不是此存储库的唯一用户,则上述过程存在问题,因为不同的用户可能已经在我将错误的提交推送到远程存储库之后的某个时间从远程(GitHub)存储库克隆或获取了数据。
最小化此可能性的一种方法是检查自从我将错误的提交推送到该存储库以来对远程存储库执行的所有拉取、获取和克隆操作的记录。如果此记录显示其中至少有一个这样的操作,则表示我们恰好遇到了上一段中描述的问题场景。
另一方面,如果记录未显示任何此类操作,则仍然有希望在不遇到前面描述的问题场景的情况下覆盖远程存储库中的错误提交。(当然,这是一种竞争条件,因此不能保证100%。)
然而,所有这些都是基于是否有这样的拉取、获取和克隆操作记录可用。我的问题是GitHub是否会公开此类记录,至少对于具有写入访问权限的用户。
git
没有任何记录谁从中拉取/获取/克隆的功能,但是网站GitHub肯定会跟踪所有访问其页面的情况,并且可以轻松地跟踪我所询问的信息。我的问题是它是否这样做,并且是否提供此信息。 - kjo