当前位置: 首页 > 知识库问答 >
问题:

gitcommit添加了两行新代码

从光启
2023-03-14

我正在用Windows上的nodeJS编写一个提交后钩子脚本。以下代码调用最后一条提交消息:

#!/bin/env node

require('child_process').exec('git log -1 --pretty=%B', function(err, commit) {
    console.log(commit); // prints message in command prompt with 2 empty lines  
    var messages = commit.split(' '); // the delimiter is irrelevant
    console.log(messages); // prints the array and shows '\n\n' at the end of last element
    console.log(messages[messages.length - 1]); // yet this prints the last element WITHOUT '\n\n'
});

为什么有2条新线路?我阅读了Unix和非Unix系统如何处理CR和LF。有点关于git configcore.autocrlf,但我不认为这是问题。

共有1个答案

胡泓
2023-03-14

第一个换行符由您的格式--pretty=%B生成。Git per default使用t格式进行格式化,格式使用终止符语法(与分隔符语法相反,称为格式)。您可以使用<代码>——漂亮=格式:%b < /代码>以避免该换行符,并考虑<代码> man git log < /C>以获得更多的细节。

第二个换行符是由Unix世界中几乎所有(默认)命令生成的。可以使用以下方法之一删除换行符:如何从字符串中删除所有换行符?

 类似资料:
  • 我已经看到了这个答案,并且正在使用它所建议的解决方案,但仍然得到相同的错误。 我有一个对用户表有外键约束的代理表,这是代理表: 这是我的实体: 现在,我想为现有用户添加一个新代理: <代码>\u上下文。SaveChanges() 行引发以下异常: "无法添加或更新子行:外键约束失败(\"dbName\".\"agent\", CONSTRAINT\"FK_Agency_User\"FOREIGN

  • Hangfire.HttpJob.Client 组件 Install-Package Hangfire.HttpJob.Client 支持 net framework 4.5+ 支持 net standard 2.0+ 如何使用Client新增一次性运行的 job 参数是和在dashbord上手动添加一致的,关于参数的说明请参考: job 参数说明 // serverUrl是hangfire da

  • 问题内容: 简单的问题。 我有一个新列表和一个旧列表。在Java中,有没有一种标准的方法/库可以比较这两个列表,并确定哪些项目已被更新/删除或是全新的?例如,我应该以三个列表结束- 删除的项目(旧项目而不是新项目),更新的项目(两个项目都在),新项目(新项目而不是旧项目)。 我可以自己写这个,但是想知道是否有标准的方法可以做到。 列表中的对象实现正确。 问题答案: 没有标准的方法对不起。您可以使用

  • 本文向大家介绍ECMAScript比ES5新添加了哪两种原始数据类型?解决了哪些问题?相关面试题,主要包含被问及ECMAScript比ES5新添加了哪两种原始数据类型?解决了哪些问题?时的应答技巧和注意事项,需要的朋友参考一下 ECMAScript比ES5新添加了哪两种原始数据类型?解决了哪些问题?

  • 我正在尝试用Java实现SNMP代理。我使用snmp4j库(http://www.snmp4j.org/)。当前,我的代理在localhost/4700上工作。由于以下请求,我尝试发送snmpget请求: 但我只得到类似“此OID当前不存在这样的实例”的信息。这是我的问题:我不知道如何创建一个实例。我试图在MOTable中添加行,但似乎不起作用。 下面是我实现MOGRoup的类的摘要 但是下面的请

  • 新建一个类EmailService, package为net.wendal.nutzbook.service ,内容如下 package net.wendal.nutzbook.service; public interface EmailService { boolean send(String to, String subject, String html); } 再新建一个实