失去对存储库的访问权限后是否可以使用“ git reset hard”?

时间:2019-06-11 09:07:56

标签: git gitlab

我正在使用gitlab。在项目的中间,我向项目(repo)添加了另一个成员。但是现在,我不希望他访问我的源代码。

我要删除src目录并推送更改,然后请他拉出然后从存储库中删除。

在失去对回购的访问权限之后,他是否可以使用git reset --hard或其他方式撤消更改?

5 个答案:

答案 0 :(得分:3)

用户可以访问他在计算机上已经拥有的提交。这是分散版本控制系统思想的一部分。

如果删除代码,这将导致代表“删除”的提交。 在删除之前,他可以轻松地重置为提交。即使您操纵历史记录并且由他拉出这些更改,本地存储库仍然具有可用的更改。如果他知道之前的提交ID,则可以使用它来恢复代码。

除非git运行其垃圾回收,否则更改将消失。默认情况下,此操作每两周运行一次。只有这样,他才可能失去访问权限。

与其要求他拉,不如要求他删除他的本地存储库。这将带给您更多的确定性。

答案 1 :(得分:1)

我不确定我是否了解您切断他的访问的计划,但是再次,如果您从gitlab项目中删除某人,他们将无法从远程(gitlab)访问任何内容,但不会阻止他们使用本地文件夹中提取的文件和git历史记录。

假设您现在强制执行覆盖git历史记录,而他又将其拉出,那么我认为他会从中恢复过来,因为他丢失了所有git历史记录。

答案 2 :(得分:1)

是的,他的计算机上有一个local copy的存储库,因此他可以在自己的local branch上执行所有操作,但不能将这些changes发送到您的remote repository

所以您需要请他从他的计算机上delete进行存储。

答案 3 :(得分:1)

如果您不希望他具有访问远程仓库(gitlab)中的仓库的权限,则可以将他从具有远程访问权限的人员列表中删除(您可以通过以下方式进行操作:管理区域<项目<管理访问

答案 4 :(得分:0)

是的,他可以回顾整个历史。他仍然可以在旧提交中找到src

如果您希望他只能访问最新版本,则可以

  1. 对最新提交进行存档,并将存档的代码发送给他,以便他可以从该代码创建存储库并对其进行处理;
  2. 或根据最近的提交创建一个孤立分支,并仅授予他对该分支的访问权限;
  3. 或在Gitlab中为他创建一个新的存储库,然后仅将孤立的分支从当前存储库推送到新的存储库。