2016-09-14 61 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 

但是沒有通用的解決方案。

相關問題