如何在提交更改访问受限文件后推送?

How to push after making a commit that changes access-restricted files?

我有一个具有以下访问规则的 gitolite 存储库:

repo foo
    RW+                     = admin
    RW+                     = user
    RW+ VREF/NAME/toPush.py = user
    -   VREF/NAME/          = user

foo 存储库是这样组织的:

foo
  --toPush.py
  --notToPush.py

我想要做的是允许管理员完全访问 foo 存储库,但只授予用户推送访问 toPush.py 文件的权限。

从用户方面来看,如果我进行更改并仅提交 toPush.py 文件并推送它,这将起作用。如果我在进行更改和推送后不小心提交了 notToPush.py,它就会失败(应该如此)。

我的问题是:既然我不小心提交了 notToPush.py,我该如何推送更新的 toPush.py?我尝试 git rm --cached notToPush.py,提交更改并再次推送,但仍然失败。我浏览了 gitolite 的官方文档,但没有看到任何关于修复错误提交和推送的内容。对用户没有推送权限的文件进行一次提交是否会导致我根本无法推送?

提前致谢。如果有简单的修复方法,我深表歉意,我找不到。

您的 gitolite 规则是 RW+,这意味着您可以进行强制推送 (git push --force)

这意味着您可以:

  • git reset @~,更改您的文件,添加、提交和 git push --force
  • 或直接修改您的文件,添加并按照评论git commit --amend --no-edit