我正在尝试将 git 命令的输出保存到 GitHub Actions 步骤中的环境变量中,它正在获取输出的第一行并忽略其余部分。正在运行的容器是 ubuntu-latest
.
这是我试图捕捉它的方式:
TMP_CHANGES=`git log origin/master..`
我对
echo $TMP_CHANGES
的期望:commit f179fb811618cc5a2f07637a2ecb394a43ebee21
Author: DannyHinshaw <danny@nulleffort.com>
Date: Tue Jan 14 07:38:29 2020 -0500
Testing commits diff
commit ed596d2ff2e5bd9801eae6ece7abf627db89f82b
Author: DannyHinshaw <danny@nulleffort.com>
Date: Tue Jan 14 07:38:28 2020 -0500
Bump version -> v1.2.1-101
commit 40f88031293aba0221b65ed1d2a8295b651ef91b
Author: DannyHinshaw <danny@nulleffort.com>
Date: Tue Jan 14 07:35:04 2020 -0500
Testing commits diff
我得到什么:
commit f179fb811618cc5a2f07637a2ecb394a43ebee21
我错过了什么?如何在保留多行格式的同时捕获完整的多行输出并将其保存到变量?
最佳答案
在 Ubuntu 18.04.3 LTS 上测试
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 18.04.3 LTS
Release: 18.04
Codename: bionic
$ git --version
git version 2.17.1
获取日志
GT=$(git log -n3 origin/master..)
不带“”的 echo
$ echo $GT
commit c7c1d60c01b23ba225d79d350d74d0f8990ea8df Author: Ivan <user@pisem.net> Date: Tue Jan 14 16:05:16 2020 +0300 ref test2 commit 7a52ab307dd6eb2c88cdee83d40dbf2f2ed8c218 Author: Ivan <user@pisem.net> Date: Tue Jan 14 15:47:16 2020 +0300 ref test2 commit 8f0a2c081a4e731b676c95991d9b182fadd71a95 Author: Ivan <user@pisem.net> Date: Tue Jan 14 12:45:13 2020 +0300 add more test files
用“” echo
$ echo "$GT"
commit c7c1d60c01b23ba225d79d350d74d0f8990ea8df
Author: Ivan <user@pisem.net>
Date: Tue Jan 14 16:05:16 2020 +0300
ref test2
commit 7a52ab307dd6eb2c88cdee83d40dbf2f2ed8c218
Author: Ivan <user@pisem.net>
Date: Tue Jan 14 15:47:16 2020 +0300
ref test2
commit 8f0a2c081a4e731b676c95991d9b182fadd71a95
Author: Ivan <user@pisem.net>
Date: Tue Jan 14 12:45:13 2020 +0300
add more test files
关于linux - Bash 将多行 Git 日志输出保存到环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59734240/