簡體   English   中英

失去對存儲庫的訪問權限后是否可以使用“ git reset hard”?

[英]is it possible to use “git reset hard” after losing access to repository?

我正在使用gitlab。 在項目的中間,我向項目(repo)添加了另一個成員。 但是現在,我不希望他訪問我的源代碼。

我想刪除src目錄並推送更改,然后請他拉出然后從存儲庫中刪除。

在失去對倉庫的訪問權限之后,他是否可以使用git reset --hard或其他方法撤消更改?

用戶可以訪問他在計算機上已經擁有的提交。 這是分散版本控制系統思想的一部分。

如果刪除代碼,這將導致代表“刪除”的提交。 在刪除之前,他可以輕松地重置為提交。 即使您操縱歷史記錄並且由他拉出這些更改,本地存儲庫仍然具有可用的更改。 如果他知道以前的提交ID,則可以使用它來恢復代碼。

除非git運行其垃圾回收,否則更改將消失。 默認情況下,此操作每兩周運行一次。 只有這樣,他才可能松手。

不要讓他拉,而要讓他刪除他的本地存儲庫。 這將為您帶來更多的確定性。

我不確定我是否了解您切斷他的訪問權限的計划,但是如果您從gitlab項目中刪除某人,他們將再也無法從遠程(gitlab)訪問任何內容,但不會阻止他們使用提取的文件和本地文件夾中的git歷史記錄。

假設如果您用提交強制推送直到現在覆蓋git歷史,而他又將其拉出,那么我認為他不能從中恢復,因為他丟失了所有git歷史。

是的,他在計算機上擁有存儲庫的local copy ,因此他可以在其local branch上執行所有操作,但不能將這些changes發送到remote repository

因此,您需要請他從其計算機上delete存儲庫。

如果您不希望他有權訪問遠程倉庫(gitlab)中的存儲庫,則可以將他從具有遠程訪問權限的人員列表中刪除(您可以通過以下方式進行操作:管理區域<項目<管理訪問權限<用戶),那么他將無法再訪問您的遠程控制器,盡管他可以使用本地副本執行他想做的任何事情,除了推,拉,取回...希望我能很好地理解您的問題對您有所幫助。

是的,他可以回顧整個歷史。 他仍然可以在舊提交中找到src

如果您希望他只能訪問最新版本,則可以

  1. 對最新提交進行存檔,然后將存檔的代碼發送給他,以便他可以從此代碼創建存儲庫並對其進行處理;
  2. 或根據最新提交創建一個孤立分支,並僅允許他訪問該分支;
  3. 或在Gitlab中為他創建一個新的存儲庫,然后僅將孤立的分支從當前存儲庫推送到新的存儲庫。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM