请注意:
C:\xyz\55 [release/r-855 ↓1 +0 ~16 -0 !]> git pull --rebase
error: cannot pull with rebase: You have unstaged changes.
error: please commit or stash them.
C:\xyz\55 [release/r-855 ↓1 +0 ~16 -0 !]> git pull --no-rebase
From http://server.xyz.com:8080/tfs/defaultcollection/code/_git/xyz
* [new branch] wfm/tfs485759 -> origin/wfm/tfs485759
Updating 5f010c356..871eb9ca2
Fast-forward
.../PayrollService/DAL/Payroll/PayRunDataProviderDAL.cs | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
C:\xyz\55 [release/r-855 ≡ +0 ~16 -0 !]>
我的结论是git pull --rebase
根本不容许任何修改过的文件。这与git pull --no-rebase
不同,git pull --rebase
可以,只要没有一个已修改的文件与新提交冲突即可。
这有点烂。
我的结论正确吗?还是可以将--no-rebase
配置为在修改文件时更像Messagebox
?
答案 0 :(得分:1)
git rebase
与git merge
(通过常规拉动完成)相反,需要干净的工作树。
(git merge
仅要求合并的文件当前未被修改)
要自动获取干净的工作树,请使用git config --global rebase.autostash true
。
这样,您的git pull --rebase
就可以使用。