作为个人练习,我正在编写一个命令行和基于git的问题跟踪器,其中问题保存在另一个git分支中(例如,project-issues)。假设我目前正在master分支工作。使用我的问题跟踪器,运行issue-tracker --add-issue "Fix all bugs"将需要修改project-issues分支的内容。因此,问题是:以编程方式修改另一个分支的内容的推荐方法是什么(即使当前分支中有未实现的更改)?
我想过的可能的方法:
git stash,切换到project-issues分支,对project-issues分支进行所需的提交,切换回用户最初所在的分支,然后运行git stash apply。project-issues分支创建一个临时工作目录,在临时工作目录中进行所需的提交,然后删除临时工作目录。这个问题有更简单的解决办法吗?
这个程序是用Python编写的。
发布于 2020-01-15 22:39:51
发布于 2020-01-15 23:00:30
我建议你避开git stash。里面到处都是锋利的箱子。
如果你有git worktree add,那就用它。它从第一次出现(Git 2.5)一直到Git 2.15,这意味着您应该在两个星期内完成在添加的工作树中所做的任何工作,然后删除添加的工作树,但是如果您在一个程序中完成这个任务,您将在几分钟或最坏的时间内完成,而不是几个星期。
菅直人回答中的低级别方法将是最有效的(到目前为止),但需要了解Git的内部细节,至少在某种程度上是这样。
发布于 2020-01-15 22:46:12
如果您使用带有web挂钩的Jenkinsfile管道,您可以更好地控制要执行的自定义任务,在任何情况下,如果您切换到另一个分支而不执行,则必须将其存储起来。
https://stackoverflow.com/questions/59760485
复制相似问题