将文件从分支签出到不存在该文件的工作分支中

时间:2019-09-04 09:22:54

标签: git workflow checkout

我有一个分支(功能4),我想在其中添加所有文件的子文件夹(src / peripherals / dma),这些文件将提交到另一个分支(功能5)。

检出的分支是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提交给branch Feature-4,它也会出现相同的错误。

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

预先感谢

关于黛蒙尼

1 个答案:

答案 0 :(得分:1)

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

一个可能的原因可能是您的feature-5的本地版本不是最新的(因此还没有提交带来所需文件的提交),请确保

git checkout feature-5
git pull

重试命令之前。


此外,路径规范应该以{{1​​}}开头,所以

--