问题描述
我正在尝试在git命令下引用此文档https://git-scm.com/docs/git。
如果我在下面的git命令中使用stash
而不是stash -a
,它会很好地工作,否则它会显示下面提到的错误消息。谁能帮我替代方案,使其能够按我的需要工作?
我的要求是存储所有文件,包括未跟踪的文件(如果有的话),然后再进行git pull,我有多个项目,要对其自动化,因为对于每个项目重复git stash -a
, git pull origin master-ci
令人头疼,我想以某种方式在git-pull-latest.bat
脚本中自动化它。
Git命令已尝试:
set MY_REPO=C:\Users\ravibeli\Documents\Projects\GitRepo
set MY_GIT_OPERATION=pull origin master-ci
git --git-dir=%MY_REPO%\demo-service\.git --work-tree=%MY_REPO% stash -a && git --git-dir=%MY_REPO%\demo-service\.git --work-tree=%MY_REPO% %MY_GIT_OPERATION%
错误消息:
Ignoring path demo-service/
Saved working directory and index state WIP on poc-branch: 9f625aa18 Merge pull request #1004 in demo-service from ~ravibeli/demo-service:display-message to poc-branch
解决方法
您可以activate autostash:而不是尝试显式地自动执行隐藏操作:
git config --global pull.rebase true
git config --global rebase.autoStash true
但是,如果您不想基于每次拉取而希望使用常规fetch
完成的经典merge
+ git pull
,则可以使用Git 2.27进行设置:>
git config --global merge.autostash true
在这两种情况下,git pull
都会首先从当前工作树中隐藏正在进行的任何工作。