Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 在两个分支之间同步文件夹_Git_Github - Fatal编程技术网

Git 在两个分支之间同步文件夹

Git 在两个分支之间同步文件夹,git,github,Git,Github,我已经创建了一个GitHub javascript项目,在源代码具有适当的形状之后,我随后也为该项目创建了GitHub页面。这就在mymaster分支旁创建了一个新的gh pages分支,其中将包含这些页面的内容 现在,我想在这些页面中显示我的项目作为演示。我已经创建了源代码相关部分的副本,但我发现每次进行更改时,我都需要在两侧进行更改(master和gh pages),或者更糟糕的是:合并更改,忽略大多数不相关的提交(例如,单元测试) 我曾将子树视为跨多个存储库保持更改同步的一种方法,但我不完

我已经创建了一个GitHub javascript项目,在源代码具有适当的形状之后,我随后也为该项目创建了GitHub页面。这就在my
master
分支旁创建了一个新的
gh pages
分支,其中将包含这些页面的内容

现在,我想在这些页面中显示我的项目作为演示。我已经创建了源代码相关部分的副本,但我发现每次进行更改时,我都需要在两侧进行更改(
master
gh pages
),或者更糟糕的是:合并更改,忽略大多数不相关的提交(例如,单元测试)

我曾将子树视为跨多个存储库保持更改同步的一种方法,但我不完全理解它是否适用于我的案例以及如何应用

如何实现跨两个分支同步单个文件夹?


谢谢

您可以签出特定分支中的特定文件或文件夹,也可以这样提交

//current branch: gh-pages

git checkout master yourfolder/
这将签出要从主分支同步到gh页面的特定文件夹


现在,您可以只提交该特定文件夹中的更改。

如果您不想签出gh pages分支(例如,避免隐藏),您可以


我不知道这些命令。如果我理解正确的话,您在这里所做的是将当前头部向上移动到gh页面,然后提交整个树。这应该将当前头向上移动到当前分支的最后一次提交,对吗?如果我弄错了,请告诉我。如果没有,那么如果发生冲突会发生什么?这些命令是如何处理整个树而不是单个变更集的提交的?这些命令的级别低于提交--提交作为基于write tree、commit tree和update-ref的脚本启动。但是html目录的树已经在存储库中。如果您对此感兴趣,我推荐gitcore-tutorial。谢谢!我已经试过了,效果很好。如果将共享部分隔离到特定路径中,则更容易实现,以避免从一个分支合并到另一个分支。通过这种方式,我将我的演示和HTML保存在
gh页面上
以及
master
分支中的源代码和测试中,并且我只需要同步一个公共部分。
git commit-tree -p gh-pages -m "" master:html \
| xargs git update-ref refs/heads/gh-pages