git pull --rebase根本不容许任何修改过的文件,这与git pull --no-rebase

时间:2018-11-02 02:12:41

标签: git

请注意:

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

1 个答案:

答案 0 :(得分:1)

git rebasegit merge(通过常规拉动完成)相反,需要干净的工作树。
git merge仅要求合并的文件当前未被修改)

要自动获取干净的工作树,请使用git config --global rebase.autostash true
这样,您的git pull --rebase就可以使用。