提交时自动将git目录复制到分支

提交时自动将git目录复制到分支,git,version-control,github-pages,Git,Version Control,Github Pages,是否可以向git repo添加一个钩子,该钩子将自动将文件从master中的目录复制到分支的根目录 原因如下: 我想使用GitHub页面发布项目文档。不幸的是,GitHub坚持网站内容应该在一个名为“gh_pages”的分支中。这样做的问题是,每当我想编写文档时,我就必须切换分支,所以我不能同时编写代码和代码。此外,当我切换到gh_pages分支时,Eclipse也会感到异常,因为那里没有.project文件,所以整个项目都会关闭 更好的方法是将站点内容存储在主分支的A/gh_pages子目录中

是否可以向git repo添加一个钩子,该钩子将自动将文件从master中的目录复制到分支的根目录

原因如下:

我想使用GitHub页面发布项目文档。不幸的是,GitHub坚持网站内容应该在一个名为“gh_pages”的分支中。这样做的问题是,每当我想编写文档时,我就必须切换分支,所以我不能同时编写代码和代码。此外,当我切换到gh_pages分支时,Eclipse也会感到异常,因为那里没有.project文件,所以整个项目都会关闭

更好的方法是将站点内容存储在主分支的A/gh_pages子目录中。这将是非常酷的,如果我可以编辑一些降价页面那里,提交和推动,并必须自动更新网站


可能吗?

是。您可以在项目中添加文件夹,并将其作为自身的子模块。将子模块指向gh_pages分支。更重要的是,现在您在2之间有了一个版本化的链接

以下是他的步骤:

git submodule add docs git+ssh://github.com/yourid/yourproject.git
git submodule init
git submodule update
cd docs
git checkout gh_pages
cd -
git add -A
git commit -m "added docs submodule"
更新文档时,请执行以下操作

cd docs && git add -A && git push && cd - 
我不需要编写脚本。按下
CTRL-R
并键入
docs
将快速显示它。按回车键,你就可以开始了

当您运行
git status
时,您将看到有一个文件夹,其中包含更改
docs
。像往常一样添加并提交

当其他人想要保持同步时,您需要发出该命令

git submodule update
要查看是否需要更新文档

git submodule
将显示子模块是最新的还是未初始化。如果它是最新的并已初始化,则在它列出之前,您将看不到任何标记。否则,它前面将有一个
+
-
,这取决于它是在顶层回购在当前提交中注册的版本的后面还是前面


更多信息可在progit.org/book第6章第6节中找到。

编写脚本!有一些git钩子可以在提交时执行。