首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >git提交无法将\n转换为新行

git提交无法将\n转换为新行
EN

Stack Overflow用户
提问于 2022-09-22 12:56:57
回答 2查看 54关注 0票数 1

在我的Mac上,我通过以下命令提交git信息。我希望git信息显示换行符,所以我将\n添加到字符串中。但它似乎不起作用,git也不会按照\n符号包装行:

代码语言:javascript
运行
复制
commit_log1="111\n"
commit_log2="222"
git commit -m "${commit_log1}${commit_log2}" 

有谁知道如何根据字符串中的符号制作git包线吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-09-22 14:52:56

这是为我工作的:

代码语言:javascript
运行
复制
git commit -m "$( echo -e $commit_log1$commit_log2 )"

至少在巴什。

票数 1
EN

Stack Overflow用户

发布于 2022-09-22 13:55:16

这很可能是shell问题,而不是git问题:

代码语言:javascript
运行
复制
# zsh :
$ echo "foo\nbar"
foo
bar

# bash :
$ echo "foo\nbar"
foo\nbar

如果您使用bash运行您在问题中显示的命令(可能是从以#!/bin/bash开头的脚本?)您将有一个litteral \n,而不是git消息中的换行符。

如果您想使用bash,可以选择向提交消息添加换行符的多种方式之一:

(bash)使用$'...'语法(参见this question):

代码语言:javascript
运行
复制
# bash :
$ echo $'foo\nbar'
foo
bar
$ commit_log1=$'111\n'
$ commit_log2="222"
$ git commit -m "${commit_log1}${commit_log2}"

(bash)字符串litteral中的普通旧换行符:

代码语言:javascript
运行
复制
$ commit_log1="111"
$ commit_log2="222"
$ git commit -m "${commit_log1}
${commit_log2}"

(git)使用git,从stdin或文件读取提交消息:

代码语言:javascript
运行
复制
# from stdin
$ (echo 111; echo 222) | git commit -F -

# from a file
$ git commit -F /tmp/mycommitmessage

(git)提供几次-m选项:

代码语言:javascript
运行
复制
$ git commit -m "111" -m "222"

..。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73815043

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档