gpt4 book ai didi

python - 如何在特定的 git commit 上运行 shell 脚本?

转载 作者:行者123 更新时间:2023-12-04 12:31:17 28 4
gpt4 key购买 nike

我想运行 run.sh 来检查我的代码的结果,这大约需要 30 个小时。但我迫不及待地想在我的代码中添加其他功能。但是,我发现有一些潜在的危险:

在我的例子中,我希望 run.sh 运行时所有文件都是固定的,同时我继续编辑 python 文件的更多功能,这可能有错误。

例如,这是我的 git 日志

* commit 6d1931c0f5f6f7030f1a93d4f7496527c3711c1f (HEAD -> master)
| Author: deeperlearner
| Date: Fri Aug 13 10:37:21 2021 +0800
|
| Version to be run by shell script
|

如何在我继续提交时强制 run.sh 在提交 6d1931 上运行?

* commit 059706b752f4702bc5d0c830c87e812a7bbaae27 (HEAD -> master)
| Author: deeperlearner
| Date: Fri Aug 13 10:38:21 2021 +0800
|
| Buggy commit that may destroy `run.sh`
|
* commit 6d1931c0f5f6f7030f1a93d4f7496527c3711c1f
| Author: deeperlearner
| Date: Fri Aug 13 10:37:21 2021 +0800
|
| Version to be run by shell script
|

我目前有解决方案:使用 docker 或将整个代码复制到其他目录。

但我想知道是否有任何方法可以强制 shell 脚本在特定的提交哈希 ID 上执行?

最佳答案

这是 git worktree 非常适合的一个用例。您基本上是在所需的提交处创建一个新分支,并在该分支处复制工作目录。例如,如果您在工作树的顶层并希望在当前 HEAD 上运行脚本,只需执行以下操作:

$ git worktree add ../bar
Preparing worktree (new branch 'bar')
HEAD is now at b2ceba9 Add d
$ cd ../bar
$ # Run long running script here
$ cd ../foo
$ # Edit files, create new commits, profit

(在这个例子中,foo 是 repo 的顶级目录的名称。)worktree 有一些选项可以处理特定的提交而不是 HEAD。详细阅读精美手册。

关于python - 如何在特定的 git commit 上运行 shell 脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68872321/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com