1

我在 GitHub 上有一个存储库,它有两个分支,即mastergh-pages. 该master分支基本上是一个静态网站,但我使用 GitHub pages 有一个带有“演示”按钮的项目页面,让用户可以看到界面是什么样的。该项目是一个LightDM 迎宾主题,可以在浏览器中运行,也可以由 LightDM 的 Webkit 迎宾器运行。

只能gh-pages正常向浏览器提供 HTML,但我将所有工作都保留在master分支上。

我的文件结构是这样的:

.
├── theme (master)
|   ├── index.html
|   └── ...
└── website (gh-pages)
    ├── demo -> contents of ../theme/
    ├── index.html
    └── ...

我尝试符号链接demotheme,因为两者必须包含完全相同的内容,但 Git 会响应此错误:

Project/website [ git commit -a "Made some changes"
fatal: 'demo/' is beyond a symbolic link

接下来,我制作了同步内容的钩子,theme并且demo每当我在其中一个分支上提交时,这种方法似乎异常复杂。

我基本上是在努力保持themedemo相互联系。有没有使用 Git 的干净方法?

4

1 回答 1

1

我认为符号链接是最干净的解决方案,除了:

  • 它应该被忽略(如果没有,你总是会得到“ beyond a symbolic link”错误)
  • 它应该在结帐时通过结帐后挂钩自动生成

钩子的问题是周围没有克隆,所以用户仍然必须激活那个特定的钩子。
另外,这可能与用户可能拥有的现有结帐后挂钩发生冲突。

另一个不会与任何现有钩子冲突的解决方案(但仍需要由所述用户克隆您的存储库来激活)是内容过滤器驱动程序

内容过滤器驱动程序

查看 中特定文件的可识别内容时website,您可以决定创建该符号链接。
这个想法是内容过滤器驱动程序脚本(这里是“涂抹”脚本)是您可以在.gitattributes文件中注册的东西。
但是用户仍然需要在他/她的 git config 中声明该过滤器驱动程序。

于 2012-08-08T06:15:25.737 回答