我在GitHub上有一个存储库,它有两个分支,即master
和gh-pages
。 master
分支基本上是一个静态网站,但是我使用GitHub页面来创建一个带有“演示”按钮的项目页面,让用户看到界面的样子。该项目是LightDM greeter theme,可以在浏览器中运行,也可以在LightDM的Webkit欢迎程序中运行。
只有gh-pages
可以正常向浏览器提供HTML,但我将所有工作都放在master
分支上。
我的文件结构是这样的:
.
├── theme (master)
| ├── index.html
| └── ...
└── website (gh-pages)
├── demo -> contents of ../theme/
├── index.html
└── ...
我尝试将demo
符号链接到theme
,因为两者必须包含完全相同的内容,但Git会回应此错误:
Project/website [ git commit -a "Made some changes"
fatal: 'demo/' is beyond a symbolic link
接下来,每当我在任一个分支上进行提交时,我都会挂钩同步theme
和demo
的内容,但这种方法似乎不自然地复杂。
我基本上试图让theme
和demo
相互关联。使用Git有没有一种干净的方法呢?
答案 0 :(得分:1)
我认为符号链接是最干净的解决方案,除了:
beyond a symbolic link
”错误)钩子的问题是没有克隆,所以用户仍然需要激活那个特定的钩子。
另外,这可能与用户可能拥有的现有结账后挂钩相冲突。
另一个不会与任何现有挂钩发生冲突的解决方案(但仍需要由所述用户克隆您的仓库激活)是content filter driver:
查看website
中特定文件的可识别内容时,您可以决定创建该符号链接。
我们的想法是,您可以在.gitattributes
文件中注册内容过滤器驱动程序脚本(此处为“涂抹”脚本)。
但是用户仍然需要在他/她的git config中声明该过滤器驱动程序。