1

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

原因如下:

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

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

可能的?

4

1 回答 1

2

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

这是他的步骤:

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

将显示子模块是最新的还是未初始化的。如果它是最新的并已初始化,那么在它上市之前您将看不到任何标记。否则,它将有一个+or-在它前面,这取决于它是在顶级 repo 已在当前提交中注册的版本的后面还是前面。

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

于 2012-10-29T21:22:59.680 回答