如果您克隆 git 工作副本(带有工作树的存储库)更改一些文件,提交并尝试推送,您将收到一条消息:
remote: error: refusing to update checked out branch: refs/heads/master
...
! [remote rejected] master -> master (branch is currently checked out)
这对我来说是可以理解和想要的行为。
我想防止意外克隆存储库的工作副本。
如何防止 git clone 克隆工作副本而不是远程裸存储库,并在尝试克隆工作副本时发出错误信号?
如果尝试克隆工作副本而不是裸远程存储库,是否有任何命令行开关会导致 git clone 非零退出状态?
如果不是,那么如何检查存储库位置(url 或 dir 的路径)是否包含裸存储库,以便我可以在克隆之前在 bash 中对其进行测试。
请注意,存储库的工作副本并不一定意味着它是本地的,因为它也可以由远程共享。
在我的情况下,应该只允许 git clone 与 git 裸存储库一起使用,如果用于克隆工作副本,则会发出错误信号。