我正在使用gitlab。在项目的中间,我向项目(repo)添加了另一个成员。但是现在,我不希望他访问我的源代码。
我要删除src
目录并推送更改,然后请他拉出然后从存储库中删除。
在失去对回购的访问权限之后,他是否可以使用git reset --hard
或其他方式撤消更改?
答案 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
。
如果您希望他只能访问最新版本,则可以