当前位置: 首页 > 知识库问答 >
问题:

Git Stash上的Git PathSpec问题

周超英
2023-03-14

当我运行新版本2.13.0.windows时。它的新命令<code>stash-p--{pathspec}

git stash-p--AB.Dir1/Dir2/DestinationHierarchyCreator.cs

它报告错误

错误:pathspec 'AB。“dir 1/dir 2/destinationhierarchycreator . cs”与git已知的任何文件都不匹配。

然而,当我做一个git状态,我从实际复制文件时,它会报告

Your branch is up-to-date with 'origin/project/develop'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

modified:  AB.Dir1/Dir2/DestinationHierarchyCreator.cs

如果我转到文件所在的目录并执行< code > git stash-p-destinationhierarchycreator . cs 操作,它会失败并出现相同的错误。

如果我运行命令git stash-p--*. cs,那么我可以将片段保存到stash。

那么,我对git stash-p选项的理解是错误的,还是我对单个文件或其他文件的路径规范处理不正确?

共有2个答案

商璞
2023-03-14

我刚刚在Windows上尝试过:它在没有“”的普通文件夹上工作

C:\Users\vonc\data\git\git>git st
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   Documentation/blame-options.txt

C:\Users\vonc\data\git\git>git stash -- Documentation\blame-options.txt
Saved working directory and index state WIP on master: b14f27f91 Tenth batch for 2.13

即使在bash会话中,使用-p,它仍然有效

vonc@bvonc MINGW64 ~/data/git/git (master)
$ git stash -p -- Documentation/blame-options.txt
diff --git a/Documentation/blame-options.txt b/Documentation/blame-options.txt
index dc41957af..96a5b1b4a 100644
--- a/Documentation/blame-options.txt
+++ b/Documentation/blame-options.txt
@@ -1,7 +1,7 @@
 -b::
        Show blank SHA-1 for boundary commits.  This can also
        be controlled via the `blame.blankboundary` config option.
-
+sss
 --root::
        Do not treat root commits as boundaries.  This can also be
        controlled via the `blame.showRoot` config option.
Stash this hunk [y,n,q,a,d,/,e,?]? y

Saved working directory and index state WIP on master: b14f27f91 Tenth batch for 2.13

在带有“.”的文件夹上:

vonc@bvonc MINGW64 ~/data/git/git (master)
$ git stash -p -- a.b/c
error: pathspec 'a.b/c' did not match any file(s) known to git.
Did you forget to 'git add'?

所以这可能是一个问题。

注意,对于Git 2.29(2020年第四季度),不再有“为边界提交显示空白SHA-1”:一些面向最终用户的消息已更新为与哈希算法无关。

请参阅Junio C Hamano(gitster)提交的4279000(2020年8月13日)。
(由Junio C Hamano-gitster合并-在提交2a978f8,2020年8月19日)

当我们在面向最终用户的消息中提到(十六进制)对象名时,仍然有少数提到SHA-1。< br >重写它们。

我希望这可能主要是s/SHA-1/object name/,但需要重新表述一些消息以保持结果的可读性。

则新的错误消息将是:

Do not show object names of boundary commits
何涵衍
2023-03-14

刚刚遇到了同样的问题。看来< code>git stash pathspecs必须相对于库根(top)——而不是相对于当前工作目录。

由于< code>git status(与许多其他git命令不同)显示路径“相对于当前目录,如果您在子目录中工作的话”,这似乎容易引起混淆。

因此,如果您当前的工作目录是~/dev/git_project_root/subdir,则需要使用:

git stash -p -- subdir/AB.Dir1/Dir2/DestinationHierarchyCreator.cs

(通配符<code>git-stash-p--*.cs

 类似资料:
  • 我在EKS上运行服务已经有一段时间了,今天无意中删除了nginx入口。现在,当我尝试使用以下url中的入口控制器模板设置入口时,只需稍加修改: https://raw.githubusercontent.com/kubernetes/ingress-nginx/controller-v0.34.1/deploy/static/provider/aws/deploy-tls-termination.

  • 我刚刚在甲骨文的网站上用这个脚本安装了Netbeans,但我在让它正常工作时遇到了一些问题。打开Netbeans后,我去打开一个简单的。java文件只是为了测试它,并得到以下错误: "缺少JDK,需要它来运行一些Neatbean模块。请使用--jdkhome命令行选项来指定JDK安装,或者查看http://wiki.netbeans.org/FaqRunningOnJre以获取更多信息。" 我有O

  • 我已经尝试在eclipse help中安装TestNG-->install new software http://beust.com/eclipse 我收到以下错误: 无法连接存储库http://beust.com/eclipse/content.xml 我错过什么了吗?

  • 我尝试升级pip与pip安装-U pip,我得到: 使用缓存的pip-8.0收集pip。2-py2。没有。whl 安装收集的软件包:pip找到现有安装:pip 7.1。0正在卸载pip-7.1。0: 例外情况: Traceback(最近的调用最后): 文件"/usr/local/lib/python2.7/dist-包/pip/basecommand.py",第223行,在主状态=self.run

  • 我想在Wildfly17.0.1.final上部署一个由子模块组成的ear文件。代码可以正确地部署在Wildfly10.1.0.final上,但在Wildfly17.0.1.final上存在问题。我尝试了standalone.xml和standalone-full.xml。在使用standalone.xml进行部署时,我在部署控制台上得到以下错误:- 当我在部署控制台上使用standalone-f

  • 我已经尝试解决这个问题两周了,但似乎找不到解决方案,它只发生在Appium desktop上,设置为。 我将文件夹的所有权从更改为,并将权限设置为,但仍然面临一个问题:我无法更改该文件的权限,因为它是一个临时文件夹,每次运行新的appium会话时,它的名称都会不断更改。 以下是错误消息: 处理该命令时发生未知的服务器端错误。原始错误:应用程序位于'/tmp/。mount_应用程序。Ap8xEj5P