有没有办法在其他分支上混入樱桃?

时间:2018-10-08 02:27:39

标签: git github

我正在从事具有更像汞的工作流程的项目,在该项目中,您将一个提交提交以供审核并自行完成。 Github要求您为此有一个分支。因此,总是有这种多余的每分支一次提交的舞蹈。

因此,如果我正在处理一组相关但不相关的更改,则我希望在等待检查和着陆时与它们一起在单个分支下进行。例如

commit1 <--HEAD
commit2
commit3
commit4 <--master

但是我必须将它们作为

commit1 <--commit-one-branch
commit4 <--master

commit2 <--commit-two-branch
commit4 <--master

等...

漫长的过程将是创建一个分支,并提交一到三个,然后

git checkout -b worktree
git checkout -b commit-one-branch master
git cherry-pick commit-one
git push myrepo commit-one-branch
git checkout worktree

等...很明显,如果您必须随时修改更改,这将变得更加难看。

我真正想要的是git publish <commit> <parent> --branch <branch-name>或某个东西创建一个新分支,该分支从<parent>cherry-pick的{​​{1}}开始,并为您创建分支,以便您可以推动它。

我可以很容易地写这个,但是我认为其他人必须在我之前考虑一下。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

  

但我认为其他人必须在我之前对此进行考虑。

我对此表示怀疑,因为这不是Git的使用方式,而不是pull-requests / merge-requests的完成方式。

您仅创建一个分支并将提交(如果您确实需要,则一次提交)提交到远程PR分支,从而触发PR / MR审核。

一旦审查完成并且提交已合并到目标分支(例如主分支),则可以将本地PR / MR分支重新建立在主分支之上,然后继续进行处理。

答案 1 :(得分:0)

要将分支从上游基础突发为单提交分支,以进行并行拉取请求,

for commit in `git rev-list @{u}..`; do
      short=$(git rev-parse --short $commit) # to make the list readable
      branchable_subject=`git log -1 --pretty=%s $short | tr -sc A-Za-z0-9 .`
      echo git branch -f $branchable_subject $short
      echo git rebase --onto @{u} $short^ $branchable_subject
done  # |sh