【发布时间】:2020-11-03 01:36:16
【问题描述】:
我目前正在尝试在master branch 的存储库中运行 脚本。
我希望该脚本(html 文件)的 输出 进入 另一个名为 output-branch 的分支。
有没有让我这样做的命令?
【问题讨论】:
标签: git git-branch
我目前正在尝试在master branch 的存储库中运行 脚本。
我希望该脚本(html 文件)的 输出 进入 另一个名为 output-branch 的分支。
有没有让我这样做的命令?
【问题讨论】:
标签: git git-branch
您可以通过使用curl -sfL 命令即时获取脚本的内容来运行脚本,然后由执行程序运行它。首先,您需要在 Github 或其他任何地方找到文件的原始格式,然后单击页面上的raw 查看按钮。
请参阅以下 bash 脚本示例:
bash -l -c "$(curl -sfL https://raw.githubusercontent.com/bitrise-tools/codesigndoc/master/_scripts/install_wrap.sh)"
【讨论】:
Git 的便捷命令是围绕通常的单用户单结账工作流程构建的。
它的核心命令……没有那么受限。您的要求很简单。
outputid=$(myscript | git hash-object -w --stdin)
treeid=$(echo 100644 blob $outputid$'\t'script-output | git mktree)
branchnow=$(git rev-parse -q --verify output-branch)
git update-ref refs/heads/output-branch $(
git commit-tree ${branchnow:+-p $branchnow} -m 'script output' $treeid
)
第一行是“将myscript 输出添加到repo 并保存它的id”。
第二个是“为添加的内容创建目录路径并保存该目录的ID”
第三个是“检查是否已经有历史”
第四个和其余部分特别使用 :+ 扩展修饰符,检查变量,如果其中有任何内容扩展为我在此处给出的内容,因此如果没有现有的分支历史记录,${branchnow:+-p $branchnow} 将扩展为空,或者 -p $branchnow如果已经有历史。 commit-tree 和 update-ref 与它们看起来完全一样:为您刚刚构建的快照的新创建提交返回一个 id,并(重新)在该提交上挂起 output-branch 分支提示标签。
【讨论】:
只写:
git checkout output-branch
在脚本中,在生成 html 文件之前。
【讨论】: