繁体   English   中英

为什么 stash all 命令在命令行(Windows)中不起作用:git --git-dir=c/a.git --work-tree=c/b status -a?

[英]Why stash all command won't work in command line (Windows): git --git-dir=c/a.git --work-tree=c/b status -a?

我正在尝试参考本文档https://git-scm.com/docs/git 的git 命令。 如果我在下面的 git 命令中使用stash而不是stash -a ,它工作正常,否则它会显示下面提到的错误消息。 任何人都可以帮助我找到替代方案以使其根据我的需要工作吗?

我的要求是在我想进行 git pull 之前存储所有文件,包括未跟踪的(如果有),我有多个项目,我想为此自动化此任务,因为对于每个项目重复git stash -a ,然后git pull origin master-ci令人头疼,不知何故我想在git-pull-latest.bat脚本中自动执行此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

您可以激活 autostash ,而不是明确地尝试和自动化存储:

git config --global pull.rebase true
git config --global rebase.autoStash true

但是,如果您不想在每次拉取时重新设置基础,并且希望通过常规git pull完成经典的fetch + merge ,则可以使用 Git 2.27 进行设置:

git config --global merge.autostash true

在这两种情况下, git pull将首先隐藏当前工作树中正在进行的任何工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM