- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在通过 Git Bash 使用适用于 Windows 2.9.3.windows.1 的 Git。
现在 dev 分支已经 checkout ,我想从 master 分支 checkout 一些现在不在工作目录中的文件。这些文件具有相同的名称并存储在类似的目录中,例如:
path/to/a/file.txt
path/to/that/file.txt
path/to/the/file.txt
path/to/this/file.txt
我确信我可以通过一个一个地指定文件来做到这一点:
git checkout master path/to/a/file.txt path/to/that/file.txt path/to/the/file.txt path/to/this/file.txt
但这很麻烦。相反,我想使用像这样的通配符:
git checkout master path/to/*/file.txt
当我尝试这个命令时发生错误:
error: pathspec 'path/to/*/file.txt' did not match any file(s) known to git.
然后,我学会了pathspec并尝试:
git checkout master path/to/**/file.txt
git checkout master 'path/to/*/file.txt'
git checkout master 'path/to/**/file.txt'
git checkout master */file.txt
git checkout master '*/file.txt'
git checkout master **/file.txt
git checkout master '**/file.txt'
git checkout master ':(glob)path/to/*/file.txt'
git checkout master ':(glob)path/to/**/file.txt'
git checkout master ':(glob)**/file.txt'
由于相同的错误,所有这些都没有工作。即使我在 master 和 pathspec 之间添加 --
它们也不起作用。如何在路径规范中使用通配符?
最佳答案
使用 Git 2.23,您可以尝试新的(目前处于实验阶段)命令 git restore
, 它确实接受 pathspec .
git restore --source=master --staged
示例(在我的例子中,我只是恢复工作树,源 HEAD):
C:\Users\vonc\git\git\Documentation\technical>echo a>> shallow.txt
C:\Users\vonc\git\git\Documentation\technical>echo a >> rerere.txt
C:\Users\vonc\git\git\Documentation\technical>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 restore <file>..." to discard changes in working directory)
modified: rerere.txt
modified: shallow.txt
no changes added to commit (use "git add" and/or "git commit -a")
C:\Users\vonc\git\git\Documentation\technical>cd ..
C:\Users\vonc\git\git\Documentation>cd ..
C:\Users\vonc\git\git>git restore Documentation/**/*.txt
C:\Users\vonc\git\git>git st
On branch master
Your branch is up to date with 'origin/master'.
nothing to commit, working tree clean
关于git - 如何在 git pathspec 中使用通配符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40272472/
我在使用带有路径规范的 git-status 时观察到一个奇怪的行为。我想听听您的意见,看看这是预期的行为,还是 git 中的未定义行为。 初始设置 $ mkdir main && cd main $
我尝试在本地安装 yarn add -D standard-version package并将其用于 release versioning 和 changeLog.md 生成,但是当我运行 yarn
我创建了一个新的 Xcode 项目。我还集成了 Firebase 和其他 pod。我正在尝试提交所有内容并将其推送到服务器。 (我不使用终端,而是使用 Xcode 的集成源代码)。 在提交 pop 窗
在 gitdiffcore(7) 中它只是声明: The pathspecs are used to limit the world diff operates in. They remove the
我正在尝试让 TravisCI 自动部署我的 Hakyll 静态站点,根据 this guide . 这是我的存储库的设置方式。我有我的源代码分支,其中包含我的 hakyll 和 Markdown 文
我正在尝试使用以下命令在最近 3 次提交中创建文件存档。 git archive -o archive.zip $(git diff --name-only HEAD~3) 但在上次提交中我删除了一些
如何使用多个路径规范运行 git 命令?例如,我想查看三种不同文件扩展名的差异: $ git diff -- *.ts | *js | *.map 最佳答案 你很接近。尝试: git diff --
如何使用多个路径规范运行 git 命令?例如,我想查看三种不同文件扩展名的差异: $ git diff -- *.ts | *js | *.map 最佳答案 你很接近。尝试: git diff --
我正在使用 git 下载一些文件,然后我执行了“git init” git pull https://myusername:mypass@github.com/Test/test.git 问题是我想更
我可以推送、 pull 和检查上游/master 一点问题都没有,但我确实收到警告。Upstream/master 用于跟踪对我 fork 的原始源代码所做的更改(已遵循 github 说明)。 例如
我正在通过 Git Bash 使用适用于 Windows 2.9.3.windows.1 的 Git。 现在 dev 分支已经 checkout ,我想从 master 分支 checkout 一些现
我正在尝试在我的设置存储库中添加一个 vim 插件作为 git 子树。无论我尝试将子树 pull 到哪里,git 都会回复 error: pathspec 我在 repos 根目录下使用下面的命令:
我已经更新、修改和删除了我的应用程序中的文件,现在可以提交了。这是状态: C:\G\ab\WebAdminApp>git status On branch master Your branch is
unable to remove file that really exists - fatal: pathspec ... did not match any files 我有一个在 git 控制下
我想放弃我对很多文件的本地更改,这些文件的名称对应一些通配符模式(例如prefix*) 我试着用命令来做: git checkout prefix* 但由于存在适合通配符的本地未跟踪文件而出现错误。文
当我运行新版本 2.13.0.windows.1 的新命令时 stash -p -- {pathspec} as git stash -p -- AB.Dir1/Dir2/DestinationHie
我刚刚尝试检查我的 master 分支并遇到了: error: Untracked working tree file 'app.xcodeproj/project.xcworkspace/xcuse
我正在尝试使用命令 git commit "commit message" 将更改提交到本地分支,但我收到以下消息: error: pathspec 'commit message' did not
我无意中将 9000 多张照片添加到我的项目文件夹中。并 promise 了他们。然后从磁盘中删除它们。坚定的。 现在我尝试将更改推送到 git 服务器。但是它花费的时间太长并且试图发送 12 Gb
我有两个分支 Master 和 Newsletterdesign,我需要与 Newsletterdesign 的区别,但是我有一个 git archive 的问题: $ git archive -o
我是一名优秀的程序员,十分优秀!