我想将本地 git 存储库中的标签与远程服务器上的标签重新同步,使用StackOverflow 上提供了这个答案:
git tag -l | xargs git tag -d
git fetch --tags
我已经安装了适用于 Windows 的 git,其中xargs
包括Windows 版 FindUtils(据我所知)。
当我运行该命令的第一部分时,我得到的是:
xargs:git:没有这样的文件或目录
如果我修改运行命令:
git tag -l | xargs echo
它正确地“回显”了我的标签。因此,我唯一的结论是 xargs 由于某种原因无法解析路径中的可执行文件。
我怎样才能让 xargs 正确执行传递给它的内容(而不诉诸传递完整路径git.exe
?)
答案1
我用Windows 上的 GnuUnix 工具的端口,并得到类似的问题,但错误信息总是Invalid argument
,例如
> printf "Hello World!" | xargs printf "%s %s"
xargs: printf: Invalid argument
一个解决方案似乎是使用“众所周知的”额外间接级别,例如诸如的shell cmd.exe
,来实际调用命令:
> printf "Hello World!" | xargs cmd /c printf "%s %s"
Hello World!