2016-09-14 65 views
5

说,我想这样做:有没有办法将原子(而不是通过壳)的git命令?

git checkout featureBranch 
git rebase master 

如果我想这两个“壳”的命令,我可以做结合:

git checkout featureBranch && git rebase master 

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

git提供了一种将原子结合两个动作的方法吗?

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

编辑:上面的两个命令只是为了说明。另外,它可能是3个或更多需要链接的命令。

回答

4

按照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 

但是没有通用的解决方案。

相关问题