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

时间:2012-10-29 21:16:48

标签: git version-control github-pages

是否可以在git仓库中添加一个钩子,它会自动将文件从master中的目录复制到分支的根目录?

原因如下:

我想使用GitHub页面发布项目文档。不幸的是,GitHub坚持认为网站内容位于名为“gh_pages”的分支中。这样做的问题是,每当我想编写文档时,我都必须切换分支,所以我不能同时编写代码。另外,当我切换到gh_pages分支时,Eclipse会因为那里没有.project文件而吓坏了,所以整个项目都会关闭。

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

可能的?

1 个答案:

答案 0 :(得分:2)

是肯定的。您可以在项目中添加一个文件夹,并将其作为自身的子模块。将子模块指向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节中找到。