【问题标题】:checkout files from a branch into working branch where this files don't exist将分支中的文件签出到不存在此文件的工作分支中
【发布时间】:2020-01-07 04:01:28
【问题描述】:

我有一个分支 (feature-4),我想在其中添加在另一个分支 (feature-5) 中提交的子文件夹 (src/peripherals/dma) 中的所有文件。

签出的分支是feature-4,不包含文件夹src/peripherals/dma(src/peripherals确实存在)

我的一位同事确实将用于 dma 的代码推送到了他的 feature-5 分支中。

正如 git checkout 的手册和 link (jasonrudolph.com) 中所述,git checkout 应该这样做,但既不提供文件的路径,也不提供文件夹的路径。

$ git branch
* feature-4
  feature-5
  master

$ git checkout feature-5 src/peripherals/dma/dma_config.c
error: pathspec 'src/peripherals/dma/dma_config.c' did not match any file(s) known to git

daimonion@ZBOOK-004 MINGW64 ~/K4G1/src/peripherals/dma (feature-4)
$ ls -al
total 4
drwxr-xr-x 1 daimonion 1049089 0 Sep  4 09:13 ./
drwxr-xr-x 1 daimonion 1049089 0 Sep  4 09:13 ../
-rw-r--r-- 1 daimonion 1049089 0 Sep  4 09:13 dma_config.c

我认为 git 有问题,因为该文件不存在,但即使我将一个空的 dma_config.c 提交给分支 feature-4,它也会给出相同的错误。

git 如何将一些文件从一个分支“合并”到它们不存在的分支?

提前致谢

问候 daimonion

【问题讨论】:

    标签: git workflow checkout


    【解决方案1】:

    这不是问题,即使当前分支上不存在文件,您也可以很好地从另一个分支签出文件。

    一个可能的原因是您的本地版本 feature-5 不是最新的(因此还没有提交需要的文件),请务必

    git checkout feature-5
    git pull
    

    在重试您的命令之前。


    另外,pathspecs 应该以-- 开头,所以更确切地说

    git checkout feature-5 -- src/peripherals/dma/dma_config.c
    

    【讨论】:

    • 完美。你明白了。分支未正确签出!再次检查并更新后,复制工作正常。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 2016-09-24
    • 1970-01-01
    • 2013-03-10
    • 2011-12-17
    相关资源
    最近更新 更多