【问题标题】:What about 'git reset --hard' with read permission (local/remote)?具有读取权限(本地/远程)的“git reset --hard”怎么样?
【发布时间】:2021-02-06 22:52:29
【问题描述】:

我是 Git 新手,我正在尝试理解这个概念。也许有人可以帮助我解决一些理论问题?

所以远程服务器上有一个 Git,而我的本地计算机上有一个克隆的 git。

将 git 克隆到具有读取权限的本地计算机(具有“R”权限的 gitolite)后,我可以对远程服务器上的 git 造成任何损害吗?

如果我执行“git reset --hard”(我知道经常有人强烈建议不要这样做),这是否只会重置本地计算机或远程服务器上的更改?
如果我使用RRW+ 授权,会有区别吗?

【问题讨论】:

    标签: git permissions reset gitolite


    【解决方案1】:

    首先,Git 本身没有“R”或“RW+”的概念:它们是由gitolite 管理的读写权限,这是一个通过 SSH 调用的授权(forced command: the ~git/.ssh/Authorized_keys file calls the gitolite script) 或HTTPS。

    git reset --hard 纯粹是一个局部函数,它确实涉及到:

    • 只有 Git,不是 gitolite
    • 仅限您的本地存储库,而不是 Gitolite 背后的远程存储库。

    如果您要将 HEAD 重置为不同的提交,则推送该新 HEAD 的唯一方法是通过 Git 操作 git push --force

    这就是 Gitolite 的来源,access rules 中的 permission field 包含在(远程)gitolite-admin repository 中。

    只有包含 RW+ 的访问规则才允许您 push --force
    R 仅用于克隆和获取,它防止推送(强制或不强制)。

    【讨论】:

      猜你喜欢
      • 2018-01-13
      • 1970-01-01
      • 1970-01-01
      • 2014-08-25
      • 1970-01-01
      • 2017-08-19
      • 2017-12-10
      • 2011-09-06
      相关资源
      最近更新 更多