考虑一个git存储库,其中一个文件曾被删除.
git rm path/to/file
git commit -a -m"testing"
Run Code Online (Sandbox Code Playgroud)
好的,现在我想看到该git log文件,但我收到了经典的错误消息:
git log path/to/file
fatal: ambiguous argument 'path/to/file': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions
Run Code Online (Sandbox Code Playgroud)
解决方案很简单 - 添加--:
git log -- path/to/file
Run Code Online (Sandbox Code Playgroud)
但为什么?为什么需要这个?这里的理由是什么?不能git做一个有根据的猜测,这可能是一个文件一次?我理解"模棱两可"的问题 - 但从来没有这个名称的标签.如果文件一旦删除,并且没有标记,那么选择"文件解释"始终是一个不错的选择.
另一方面,可以有一个名为与文件相同的标记,它可以git log很好地处理:
fatal: ambiguous argument 'path/to/file': both revision and filename
Use '--' to separate filenames from revisions
Run Code Online (Sandbox Code Playgroud)
这种行为似乎不一致.任何人都可以解释一下git的开发人员的想法吗?
我想在python中编写一个"枚举类".我目前遇到的一个小麻烦是无法在枚举类中定义枚举值.也就是说,我可以这样做:
class Fruit:
def __init__(self, name):
self.name = name
class Fruits(Enum):
Apple = Fruit("apple")
Run Code Online (Sandbox Code Playgroud)
但我想这样做,或类似的清晰的等价物:
class Fruit(Enum):
def __init__(self, name):
self.name = name
Apple = Fruit("apple")
Run Code Online (Sandbox Code Playgroud)
不幸的是,我收到以下错误:名称'Fruit'未定义
在这种情况下,可见度的规则是什么?是否有任何鲜为人知的Python技巧可以帮助我?我更喜欢可以在Enum的元类中编写的东西,因为这样可以减少用户的使用麻烦.
我有一个非交互式服务作为Windows机器上的特权SYSTEM用户运行,我需要它作为提升的进程启动给定的可执行文件.
我已经设法使用WTSGetActiveConsoleSessionId()启动子进程作为SYSTEM,查找系统进程并复制它的令牌.同样,我可以作为普通用户启动非提升流程.但我需要以普通用户身份启动该流程,但具有提升的权限 - 这样我就不必显示UAC,但该流程正在以适当的用户身份运行.
我并不想绕过UAC - 因为用户已经同意安装该服务.我正在努力减轻不便.我找到了一个类似的,没有答案的问题 - 但又一次问道,希望得到答案.