gpt4 book ai didi

带有变量的 Git 别名无法按预期工作 : pathspec did not match any file(s) known to git

转载 作者:太空狗 更新时间:2023-10-29 14:15:22 25 4
gpt4 key购买 nike

我已经创建了一个别名来根据需要 catch 我的跟踪分支。这是我的 .gitconfig 的 [alias] 部分的当前行:

catchup = !CURRENTBRANCH=$(git symbolic-ref --short HEAD) && echo Currently on $CURRENTBRANCH - switching to $1 && git checkout $1 && git merge origin/$1 && echo Going back to $CURRENTBRANCH && git checkout "$CURRENTBRANCH"

我是这样使用的(举例):

git catchup new_design

此代码导致(例如):

Currently on integration
Switched to branch 'new_design'
Your branch is behind 'origin/new_design' by 1 commit, and can be fast-forwarded.
Updating c82f7db..51eea8a
Fast-forward
themes/theme1/css/styles.less | 17 +++++++++++++++++
themes/theme1/js/app.js | 6 +++---
2 files changed, 20 insertions(+), 3 deletions(-)
Going back to integration
error: pathspec 'new_design' did not match any file(s) known to git.

我已经尝试了别名中带和不带双引号的最后一条命令,结果相同。

最后有人知道如何解决该错误吗?

对于那些可能建议使用 git pull 的人,它不能解决我的问题,并且需要输入我的密码。如果我最近使用了 git fetch,并且不需要返回到远程仓库,就可以使用这个别名。

我在 Windows 7 上运行 git bash,仅供引用。

最佳答案

为别名使用 shell 函数:

[alias]

catchup = "!f() { CURRENTBRANCH=$(git symbolic-ref --short HEAD) && .... ;}; f"

$n 的处理按预期工作。


OP mwotton确认 in the comments以下工作:

catchup = "!_(){ CURRENTBRANCH=$(git symbolic-ref --short HEAD) ; echo \"Currently on \"$CURRENTBRANCH\" - switching to \"$@ ; git checkout $@ ; git merge origin/$@ ; echo \"Going back to \"$CURRENTBRANCH ; git checkout $CURRENTBRANCH; }; _"

在多行中,以获得更多可见性:

catchup = "!_(){ 
CURRENTBRANCH=$(git symbolic-ref --short HEAD) ;
echo \"Currently on \"$CURRENTBRANCH\" - switching to \"$@ ;
git checkout $@ ;
git merge origin/$@ ;
echo \"Going back to \"$CURRENTBRANCH ;
git checkout $CURRENTBRANCH; }; _"

关于带有变量的 Git 别名无法按预期工作 : pathspec did not match any file(s) known to git,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12776015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com