【问题标题】:Github Windows: Working with 'master' and 'gh-pages' branchesGithub Windows:使用“master”和“gh-pages”分支
【发布时间】:2013-09-01 06:39:50
【问题描述】:

我有一个非常简单的 jQuery 插件,我已经编写并放置在 github 上。我正在使用 Github for Windows 和网站本身来管理项目。

不幸的是,如果我尝试通过Raw 链接包含我上传到那里的任何.js.css 文件,由于MIME 类型为plain/text,它在我的浏览器中失败了.

因此,在过去的几个小时里,我一直在研究如何通过 github 获取文件的副本,以便人们(包括我自己)可以链接到。第一步似乎是创建一个项目页面(gh-pages 分支)......我已经掌握了很多。

但是,到目前为止,我发现的所有材料要么希望您拥有基于 UNIX 的系统,要么会使用一些基于控制台的技巧:

示例:GitHubSOSO

现在,必须有一种简单的方法来简单地使这些源文件可供包含。我完成了创建“项目页面”的自动化步骤,现在我看到了另一个声称位于“主”分支后面的分支,但我看不到接下来应该做什么。我什至不清楚为什么我需要创建另一个分支。整个事情似乎比它需要的要复杂得多。

所以,回顾一下:

  • 我在 Github 中创建了一个分支(使用 Windows 应用和网站)
  • 我可以毫无问题地管理它并更新我的文件
  • 我无法使用“原始”链接包含 .js 和 .css 文件
  • 我希望能够在页面中包含这些文件
  • 我想通过 Github for Windows 或网站本身来完成此操作

如果有人可以帮助我完成此操作,我将不胜感激。另外,我希望 很多 其他人也会这样做。

编辑:这是一个著名的 Github 项目的示例,该项目的文件可通过 Github 获得:

Select2: http://ivaynberg.github.io/select2/select2-3.4.2/select2.js

EDIT2:好的,从概念上讲,我现在明白了为什么我必须创建一个单独的分支来共享文件 - 因为 Github 的源代码控制方面并不是要充当CDN,项目页面只是提供了一个公共网站,您可以在其中放置文件。所以现在的问题变成了:如何将我的文件从 master 分支放入 gh-pages 分支? 我现在不担心自动化它或任何事情,我想要的只是访问目录结构,以便我可以将文件放在那里。我已经尝试将我的分支与 Github Windows 同步和重新同步,但它告诉我从 gh-pages 分支中没有任何东西可获取,即使它“落后 10 次提交”。怎么回事?

EDIT3:添加了我自己的答案,我想出了什么(到目前为止)。

【问题讨论】:

  • github不是CDN,要以CDN的方式共享文件
  • 不管它是否是 CDN,它通常用于此类目的(我在问题中添加了一个备受瞩目的示例)。此外,正如我所提到的,Github 本身试图解释如何做到这一点,但我根本无法遵循他们的文档。

标签: javascript jquery css github github-for-windows


【解决方案1】:

如前所述,对于使用基于控制台的 Git 软件的人来说,这里有很多信息。但是,我找不到有关如何仅通过 Github Windows 执行此操作的信息。好了,解决办法如下:

流程:

  • 创建项目页面,如下所述:https://help.github.com/articles/creating-pages-with-the-automatic-generator

  • 不幸的是,他们只有基于控制台的解决方案来获取本地副本。下面是其余部分在 Github Windows 中的工作方式...(假设:项目名称为 myproject,由 myproject.js 和 myproject.css 组成)

  • 页面创建后(需要几分钟),打开 Github Windows。

  • 在 Github Windows 中,打开项目的存储库。在顶部菜单栏上有“同步”、“主”、“工具”。点击“master”并切换到“gh-pages”分支 - SO example

  • 执行此操作时,文件夹C:\Users\YourName\Documents\GitHub\myproject 现在将显示“gh-pages”分支的文件。如果单击“master”,在 Github Windows 中,它将更改文件夹结构以再次代表“master”分支。 这是我之前困惑的地方,你不能同时看到两个分支的目录结构。

  • 在 Github Windows 中选择“master”分支。

  • 在 Windows 资源管理器中,将 myproject.js 和 myproject.css 复制到单独的目录中(例如,c:\temp)。

  • 回到 Github Windows 并选择“gh-pages”分支。

  • 返回 Windows 资源管理器,将您放入 c:\temp 的文件剪切并粘贴到类似 C:\Users\YourName\Documents\GitHub\myproject\myproject-1.0\ 的目录中

  • 回到 Github Windows,你会看到“2 个文件要提交”。输入您的提交信息并点击“提交”。

  • 然后点击“同步”。

  • 您现在可以将这些文件包含在您的网页中,使用如下 URL:http://yourname.github.io/myproject/myproject-1.0/myproject.js

如果您希望定期更新源文件,那么这样做显然是一个巨大的痛苦。因此,显然自动化方法将是最理想的。在 SO here 上有一个答案,不幸的是它涉及基于 UNIX 的脚本,我对此知之甚少(而且,说实话,没有兴趣为此学习)。如果有人想出一种更有效的方法,仅使用基于 GUI 的工具,我相信我自己和其他许多人都会有兴趣了解它。

编辑: 这个解决方案显然篡夺了 Github 的预期做事方式,因为当我点击 github 网站上的“gh-pages”分支时,它告诉我它是“提前 5 次提交并且11 个提交落后于“主分支”,即使它们具有相同的文件。所以,再一次,如果其他人有更好的基于 GUI 的解决方案来解决这个问题,我会全力以赴。

【讨论】:

  • 这是通过 GitHub for Windows 执行此操作的正确方法。它说“提前 5 个提交,后面有 11 个提交”,因为分支彼此独立,从技术上讲,这些提交 是具有自己的 ID、内容和提交消息的不同提交。
  • 是的,在使用新版本的 Github for Windows 几天后,一切看起来都比较简单。阅读我的麻烦,我不太确定最后的提交让我感到困惑的是什么,但它目前似乎工作得很好。
【解决方案2】:

Windows 的 Git(hub) 软件是我用过的最有漏洞的软件(嗯,除了 Windows 本身)。当我使用 Windows 时,我几乎无法使用 Git。

但是,无论如何,要回答您的问题,如果您打开命令提示符并输入

git checkout -b gh-pages

(如果它抱怨分支 gh-pages 已经存在,请删除 -b。)

它应该切换分支。然后,您可以启动 notepad++ 或您使用的任何文本编辑器(您可能必须从终端执行此操作,我不记得了),添加您想要的文件,然后输入(在 cmd ):

git add .

这会递归地将文件夹中的所有文件添加到 Git。

git commit -m "Add file for easy user download"

这会添加提交消息。

git remote add origin git@github.com:yourusername/yourrepository.git

这会添加 Github 存储库,以便您可以推送到它

git push origin gh-pages

这会将您的更改推送到 Github。

而且,一切准备就绪!

您可能想阅读关于 Git 分支的 this

【讨论】:

  • 感谢您的回答,但我正在尝试在 Github Windows 中执行此操作。 FWIW,对我来说,它似乎根本没有问题,只是文档部门有点缺乏:)
猜你喜欢
  • 2021-08-01
  • 1970-01-01
  • 2013-12-23
  • 2015-06-27
  • 2011-08-14
  • 1970-01-01
  • 1970-01-01
  • 2015-12-22
  • 1970-01-01
相关资源
最近更新 更多