有没有一种方法可以原子地(而不是通过shell)组合git命令?

有没有一种方法可以原子地(而不是通过shell)组合git命令?,git,Git,我想这样做: git checkout featureBranch git rebase master 如果要组合两个“shell”命令,可以执行以下操作: git checkout featureBranch && git rebase master 然而,这不是原子的。如果由于某种原因,git checkout命令失败,工作目录将不会处于与以前相同的状态,也不会处于最终预期状态。另外,其他进程,例如我的IDE,可能能够看到两个命令之间的中间状态 git是否提供了一种将两个

我想这样做:

git checkout featureBranch
git rebase master
如果要组合两个“shell”命令,可以执行以下操作:

git checkout featureBranch && git rebase master
然而,这不是原子的。如果由于某种原因,
git checkout
命令失败,工作目录将不会处于与以前相同的状态,也不会处于最终预期状态。另外,其他进程,例如我的IDE,可能能够看到两个命令之间的中间状态

git是否提供了一种将两个操作原子化组合的方法?

我不需要完整的文件系统级原子性。也就是说,如果组合操作需要更改工作目录中的10个文件,那么其他进程可以单独观察这10个更改


编辑:以上两个命令仅用于说明。此外,可能有3个或更多需要链接的命令。

根据
man-git-rebase
这些命令可以合并:

If <branch> is specified, git rebase will perform an automatic git checkout
<branch> before doing anything else. Otherwise it remains on the current branch.
然而,没有普遍的解决办法

git rebase master remoteBranch