git pull——rebase根本不允许任何修改过的文件,与git pull相反——没有rebase

git pull——rebase根本不允许任何修改过的文件,与git pull相反——没有rebase,git,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.xy

请注意:

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不同——不使用rebase,只要修改的文件不与新提交冲突就可以了

这有点糟糕


我的结论正确吗?或者,当涉及到修改的文件时,
git-pull--rebase
是否可以配置为更像
--no-rebase
git merge
仅要求当前未修改合并的文件)

要自动获得干净的工作树,请使用
git config--global rebase.autostash true


这样,您的
git-pull--rebase
就可以工作了。

如果您想对一个特定的pull-git-pull使用merge而不是rebase,请不要使用rebase;如果您希望在远程树提交的顶部应用所有尚未推送的提交,从而允许您的提交保持直线且没有分支,那么使用-git pull--rebase;我不明白这句话有什么用。如果再基础失败,它不会自动解除隐藏;准备好后,您需要使用
git stash pop
或等效工具,文档警告您在应用隐藏时也可能会遇到冲突。它默认为false是有原因的;“我觉得它很有用,但它可能会使冲突的解决变得更困难。”丹尼尔同意。除非它是一个交互式的基础。如果rebase失败并且您想退出,那么执行一个
git rebase--abort
:这将恢复AutoStath(自git 2.10:)