小编Mar*_*tek的帖子

Windows 10命令提示符下的git log输出编码问题

问题

如何git log在Windows命令提示符下正确显示命令输出?

git命令序列导致问题 正如你所看到的,我可以正确输入变音字符,但git log输出却以某种方式被转义.根据UTF-8编码表,来自输出的成角度括号(<>)之间的代码对应于先前键入的git config参数.

我曾试图设置LESSCHARSET环境变量,utf-8如sugested的答案类似的问题之一,但随后的输出是乱码:

设置LESSCHARSET = utf8后的git log输出

我知道.git/config编码正确,utf-8因为它gitk按预期处理.

适当的gitk输出

locale如有必要,这是命令输出

LANG=
LC_CTYPE="C.UTF-8"
LC_NUMERIC="C.UTF-8"
LC_TIME="C.UTF-8"
LC_COLLATE="C.UTF-8"
LC_MONETARY="C.UTF-8"
LC_MESSAGES="C.UTF-8"
LC_ALL=
Run Code Online (Sandbox Code Playgroud)

编辑:

在纯git-bash中输出也是一样的:

在此输入图像描述

所以我认为问题是shell独立的,并且与Git或其配置本身有关.

git locale command-prompt character-encoding

61
推荐指数
4
解决办法
1万
查看次数

具有嵌套类型信息属性的Jackson多态反序列化

我受限于给定的JSON结构:

{
  "metadata": {
    "eventName": "FooEvent",
    "field1": "bla"
  },
  "event": { ... }
}
Run Code Online (Sandbox Code Playgroud)

如何使用多态反序列化和嵌套类型信息属性对其进行反序列化?我正在使用metadata.eventName嵌套属性,@JsonTypeInfo如下所示:

@JsonTypeInfo(
    use = Id.NAME,
    include = As.EXISTING_PROPERTY,
    visible = true,
    property = "metadata.eventName"
)
@JsonSubTypes({
    @Type(name="fooEvent", value = FooEvent.class)
    @Type(name="barEvent", value = BarEvent.class)
})
public class EventPayload<T> {
     private Metadata metadata;
     private T event;
}
Run Code Online (Sandbox Code Playgroud)

鉴于配置杰克逊抱怨该物业无法找到:

com.fasterxml.jackson.databind.JsonMappingException: Unexpected token (END_OBJECT), expected FIELD_NAME: missing property 'metadata.eventName' that is to contain type id  (for class EventPayload)
 at [Source: {
  "metadata": {
     "eventName": "FooEvent", …
Run Code Online (Sandbox Code Playgroud)

java json jackson deserialization

7
推荐指数
1
解决办法
2541
查看次数

Git 提交错误:无法生成 gpg.exe:没有这样的文件或目录

这是我尝试提交任何文件时得到的输出。我尝试再次安装 git 并在 youtube 上观看了一些教程以重新启动它,但它不起作用。仍然遇到同样的错误:

错误:无法生成 C:\Program Files (x86)\GnuPG\bin\gpg.exe:没有这样的文件或目录
错误:gpg 未能对数据进行签名
致命:写入提交对象失败

git gnupg git-commit git-sign

7
推荐指数
2
解决办法
6556
查看次数

GitHub 行动 | 触发除一个子文件夹之外的根文件夹的管道

我想在文件夹的目录或子目录中更改任何文件时触发管道,/ProjectA/除了/ProjectA/sub-dir-a.

我添加了以下事件来实现结果,但是,它抛出一个错误,指出无法在同一事件中添加 Path 和 Path-ignore。

    on:
  push:
    branches: [ master ]
    paths: "ProjectA/**"
    paths-ignore: " ProjectA/sub-dir-a /**"
Run Code Online (Sandbox Code Playgroud)

收到错误 在此输入图像描述

此外,如果我将事件更改为仅包含“路径”,即使子文件夹中的任何文件也发生更改,它也会触发管道。

我正在寻找排除子目录的选项。

github-actions

6
推荐指数
1
解决办法
3517
查看次数

如何防止 GitHub 操作工作流被分叉的存储库事件触发?

我最近突然想到,on pull_request如果你有一个公共存储库,任何人都可以触发 GitHub 操作的事件。

IE:

  1. 有人克隆了我的存储库
  2. 他们将一个something.yml文件添加到.github/workflowspull_request事件上运行的文件
  3. 他们创建了一个拉取请求

然后运行他们在拉取请求中指定的操作。如果您有自托管运行器,那么实际上地球上的任何人都可以在自托管运行器用户的上下文中在您的服务器上运行 shell 命令。

如果这像我认为的那样工作,那么地球上的任何人都可以通过拉取请求在您的服务器上运行任意代码。我试过这个,似乎是这样。

如何将可以在存储库上触发的操作列入白名单?否则,我如何安全地将 Github Actions 与公共存储库和自托管运行器一起使用。我已经看到了警告......我只是假设我必须小心不要接受来自未知来源的拉取请求。

github-actions

5
推荐指数
1
解决办法
733
查看次数