为什么隐藏所有命令在命令行中不起作用(Windows):git --git-dir=c/a.git --work-tree =c/b状态-a?

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

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

我的要求是在我想进行 git 拉取之前存储所有文件,包括未跟踪的文件(如果有的话),我有多个项目,我想为这些项目自动执行此任务,因为对于每个项目重复 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

您可以 :

而不是明确地尝试和自动化存储
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 将首先存储当前工作树中正在进行的所有工作。