将目录及其所有文件从主分支复制到具有不同目录结构的新分支

时间:2015-09-04 19:44:11

标签: git

假设我有一个master分支和一个gh-pages分支。 master的目录结构如下所示:

projects/
    project-one/
        src/
            app.js
        dist/
            bundle.js
            index.html
    project-two/
        src/
            app.js
        dist/
            bundle.js
            index.html

gh-pages的目录结构是空白的,但我希望它看起来像这样:

project-one/
    bundle.js
    index.html
project-two/
   bundle.js
   index.html

我已尝试详细说明here

$ git checkout master
$ git checkout gh-pages project-one/dist
error
$ git checkout gh-pages -- project-one/dist 
error

那应该将dist文件夹复制到gh-pages分支,但是我收到error pathspec: file not found错误,所以我尝试git pull同步到远程,但这并没有解决问题。< / p>

请注意,为了使gh-pages干净,我在整个目录中使用了git rm -r,因为我不希望gh-pages目录结构从master继承。

如何将每个project / dist文件夹中的所有内容从master分支复制到gh-pages分支?

编辑:尝试了git checkout gh-pages project-one/dist/**,这给了我更好的错误信息:error: pathspec 'dist/bundle.js' did not match any file(s) known to git.

1 个答案:

答案 0 :(得分:2)

你正在倒退。您需要在gh-pages分支范围内,然后执行checkout操作:

$ git checkout gh-pages
$ git checkout master dir/file1

我相信你可以从分支机构复制到另一个分支机构并更改目录的唯一方法(当然不需要在复制后进行手工操作)如下:

$ git show master:dir/file1 > new_location/file1