繁体   English   中英

有没有办法以原子方式组合git命令(而不是通过shell)?

[英]Is there a way to combine git commands atomically (not through shell)?

说,我想这样做:

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

然而,没有通用的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM