对于我的生活,我想不出任何介绍,所以......
不完全是真正的 Pull 请求
...确保代码片段的正确显示:
(顺便说一句,这也适用于 Gist。如果为 gist 指定 .jsf 扩展名,则 JSF 语法将突出显示)。以下是所有支持的语法的列表。
看,加隆现在有照片了!
顺便说一下,关于 URL...
但这些与 master 分支不同,但如果我之前使用过集成分支,我可以在 URL 中输入/compare/integration-branch...my-branch
对于热键爱好者:CTRL+L 或 CMD+L 将光标移动到 URL 栏(至少在 Chrome 和 Firefox 浏览器中)。这与浏览器自动完成功能相结合,使得分支之间的导航变得更加容易。 专业提示:使用箭头浏览 Chrome 的自动完成建议,然后按 SHIFT+DELETE 从历史记录中删除项目(例如,合并分支后)。(我不知道如果我在其中放一个空格,例如 SHIFT + DELETE,是否会更容易阅读这些快捷键。但从技术上讲,“+”不是它们的一部分,所以我不喜欢这个选项。它是因为这样的事情我晚上睡不着觉,朗达。)
当您从列表中查看问题时,您是否希望出现像“5 分之二”这样的漂亮栏?
没问题!您可以使用以下语法创建交互式复选框:
如果您不明白我所说的“项目面板”的意思 - 请阅读下文。此页面仅低几厘米。
这里没什么好笑的。现在 GitHub 项目中也出现了同样的情况:
渐渐地,您的眼睛会习惯低对比度图像
为了速度起见,我将上述所有内容添加为注释,这意味着它们不是“真正的”GitHub 问题。但 GitHub 中问题管理的强大之处在于它与存储库的其余部分的集成 - 因此最好将存储库中的现有问题添加到仪表板。单击右上角的“添加卡片” ,然后找到您要添加的内容。这是特殊搜索语法派上用场的地方:例如,输入is:pr is:open,您可以将任何打开的 Pull 请求拖到面板上,或者如果需要修复任何错误,则 输入 label:bug 。
您还可以将现有笔记转换为问题。
最后,从现有的问题表单中,将其添加到右侧面板中的项目中。
它将进入该项目面板的分类列表,因此您可以选择将其放入哪一列
当“任务”的描述与实现该任务的代码位于同一存储库中时,这是非常(非常)方便的。这意味着从现在起很多年后,您将能够在一行代码上运行gitblame并找出导致该行的全部问题,而无需在 Jira/Trello/其他地方全部追踪。
这很难与 GitBook( Redux文档中使用的)或定制网站之类的东西竞争。但这已经是其中的 80%,并且您的存储库中的所有内容都正确。我只是这个的粉丝。我建议,如果您已经无法满足单个 README.md 文件的需求,并且需要多个不同的页面来获取用户手册或更详细的文档,那么坚持使用 Gwiki 是有意义的。如果缺乏结构/导航让您感到困扰,请继续做其他事情。
如果您单击此 GitHub 站点的设置选项卡,启用 GitHub Pages,然后选择 Jekyll 主题...
然后我们会得到一个 Jekyll 主题风格的页面:
然后,您可以主要基于可轻松编辑的标记文件创建整个静态站点,从本质上将 GitHub 转变为 CMS。虽然我没有实际使用过这个,但这就是使用 React 的 Bootstrap 框架构建网站的方式,所以没有什么可怕的。我注意到Ruby必须运行在本地机器上(Windows用户会在这里交换理解眼神然后走另一条路,macOS用户会说:“有什么问题,你要去哪里?Ruby是一个通用平台!还有一个GEMS”包管理系统!”)(还值得注意的是,GitHub Pages 上不允许出现“攻击性或威胁性内容或行为”,因此您将无法在那里发布 Hansel 和 Gretel 故事的版本)。
从这个视频中我了解了octobox,到目前为止,在我看来它也是一个非常好的实用程序。这是您的 GitHub 问题的收件箱。这就是你需要了解的关于他的一切。说到颜色,我以浅色主题拍摄了以上所有屏幕截图,以免吓到您。但如果我更喜欢其他一切的深色,那么为什么要忍受死色苍白的 GitHub?
这里我使用了 Chrome 浏览器的Stylish扩展(可以将主题应用到任何网站)和GitHub Dark风格的组合。对于初学者来说,GitHub 开发人员工具深色主题(内置,您只需启用它)和Chrome 的Atom One Dark主题。
小词典 由于术语 Git 和其他编程流行语最常在没有翻译的情况下使用,因此我决定不翻译它们。为了秩序起见,我将在这里对本文中的术语进行简要翻译,并进行“解码”。 叉子——“叉子”。本质上,您自己复制该项目,以便基于它改进某些内容。 拉取请求- 更改请求。将您的更改发送到存储库以供审核(也就是说,只有在存储库所有者或工作同事确认后,此代码才会添加到主项目中) Pull – 从 GitHub “拉”(例如到计算机上的 IDE)项目 推送– 将项目从本地计算机“推送”到 GitHub |
#1 在 GitHub.com 上编辑代码
我将从我认为每个人都已经知道的内容开始(尽管我个人一周前对此一无所知)。在任何存储库中查看 GitHub 上的任何文本文件时,您都可以在右上角看到一支小铅笔。如果单击它,您可以编辑该文件。完成后,单击“建议文件更改”,GitHub 将创建一个分叉和拉取请求。太棒了,不是吗?他自己创造了叉子!无需 fork 代码并将其上传给自己、在本地进行更改并通过 Pull 请求将其发送回 GitHub。如果您需要进行最少的编辑,则非常方便。![GitHub 的 12 个惊人功能 - 1](https://cdn.javarush.com/images/article/8ac66f34-d44d-44d3-8188-a14ef3f1e3c7/1024.jpeg)
#2 插入图像
问题描述不仅仅限于文字注释。您知道可以直接从剪贴板粘贴图像吗?粘贴后,您会看到它已上传(毫无疑问,上传到云端)并转换为标记来显示图像。优美!#3 代码格式化
如果您需要编写一段代码,请从三个反引号开始,GitHub 将尝试猜测您正在使用哪种编程语言编写。但是,如果您使用 Vue、Typescript 或 JSX 等编程语言发布一段代码,则可以显式指定语言,以便语法突出显示正确。注意第一行的``jsx:![GitHub 的 12 个惊人功能 - 2](https://cdn.javarush.com/images/article/0892578f-cffc-4040-aa88-094a2f709431/1024.jpeg)
![GitHub 的 12 个惊人功能 - 3](https://cdn.javarush.com/images/article/fb6f6a85-fb4d-4b45-8cf3-96b7bc084924/1024.jpeg)
#4 在 Pull 请求中使用“魔法词”来解决问题
假设您创建了一个修复问题 #234 的 Pull 请求。您可以将文本“fixes issues #234”插入到您的请求描述中(或任何更改请求注释中的任何位置)。此后,合并 Pull 请求将“自动”解决问题。很酷,不是吗?文档中提供了有关此内容的更多信息。#5 评论链接
您是否曾经需要创建指向特定评论的链接但不知道如何操作?那些日子已经一去不复返了,因为我将告诉您一个秘密:要创建评论链接,您只需单击标题旁边的日期/时间即可。![GitHub 功能](https://cdn.javarush.com/images/article/d38b5cfc-6153-463f-9d44-efb21ea6fe48/1024.jpeg)
#6 代码链接
因此您想要创建指向特定代码行的链接。在这种情况下,请尝试以下操作:在打开的文件中单击所需代码旁边的行号。哇,看到了吗?URL 已更改,行号现在可见!如果您按住 SHIFT 键并单击另一个行号,那么瞧!– URL 将再次更改,并且行范围将突出显示。该 URL 现在将指向该文件和该范围的行。但是等等,它指向当前线程。如果文件改变了怎么办?在这种情况下,您可能需要一个指向当前状态的文件的永久链接。我很懒,所以把上面的都截图了:![GitHub 功能](https://cdn.javarush.com/images/article/d44c44c1-9b1b-45e1-8f6b-ac7245c705cd/1024.jpeg)
#7 使用 GitHub URL 作为命令行
使用 UI 浏览 GitHub 非常方便。但有时,要访问特定位置,只需将其输入 URL 会更快。例如,如果我想转到我正在处理的分支并查看它与主分支的比较,我可以简单地 在存储库名称后输入/compare/branchname 。这将带我进入该分支的差异页面:![GitHub 功能](https://cdn.javarush.com/images/article/dc9db14c-0e8e-4744-a64c-aa494dcf1b9e/1024.jpeg)
![GitHub 功能](https://cdn.javarush.com/images/article/fc485517-a35a-43f5-9f57-b5206f9baa3b/1024.jpeg)
#8 创建问题列表
您想要在问题描述中添加复选框吗?![GitHub 功能](https://cdn.javarush.com/images/article/2ecff7e4-8e2f-49ed-b488-619a11f5cbab/1024.jpeg)
![GitHub 功能](https://cdn.javarush.com/images/article/c8e28392-6ed4-476f-87d9-d39a319f89a3/1024.jpeg)
- [ ] 屏幕宽度(整数)
- [x] 服务人员支持
- [x] 获取支持
- [ ] CSS 弹性盒支持
- [ ] 自定义元素
![GitHub 功能](https://cdn.javarush.com/images/article/fdaf7123-f6d9-46d6-866d-898761225611/1024.jpeg)
#9 GitHub 中的项目面板
对于大型项目,我一直使用 Jira。对于我的个人项目,我一直使用 Trello。我真的很喜欢这两个工具。几周前,当我得知 GitHub 在存储库的“项目”选项卡中提供了自己的选项时,我认为复制我已经在 Trello 中处理的任务集是有意义的。![GitHub 功能](https://cdn.javarush.com/images/article/4923f72e-0cb6-4131-8c18-ff5aedc82b6d/1024.jpeg)
![GitHub 功能](https://cdn.javarush.com/images/article/24ed369d-e43b-44a1-9c6a-f69b654b7063/1024.jpeg)
![GitHub 功能](https://cdn.javarush.com/images/article/4542c99e-5761-4efb-9fd5-c3000cb8cf06/1024.jpeg)
![GitHub 功能](https://cdn.javarush.com/images/article/574ee8c9-b646-4b84-af81-31ddf30a7869/1024.jpeg)
![GitHub 功能](https://cdn.javarush.com/images/article/f4028773-9de7-40d6-8eba-9762fb6fe0c0/1024.jpeg)
缺陷
在过去的三周里,我一直在尝试在 GitHub 而不是 Jira 中完成所有操作(在一个小项目上,有点看板风格),并且喜欢它。但对于需要正确评估和计算开发速度等的 Scrum 项目,我无法想象这一点。好消息是 GitHub 项目的“特殊功能”很少,切换到另一个系统不会花费太多时间。因此,尝试一下,看看您有多喜欢它。我不知道这有多重要,但我听说了ZenHub,并在 10 分钟前第一次打开它。它本质上是 GitHub 的扩展,您可以在其中对问题进行评级并创建“史诗”和依赖项。有发展速度和倦怠的图表;看起来这简直就是一件了不起的事情。进一步阅读:有关项目的 GitHub 文档。#10 维基百科
对于像 Wikipedia 这样的非结构化页面集,GitHub Wiki(从现在起我将其称为 Gwiki)非常有用。对于一组结构化页面 - 例如,像您的文档 - 没有那么多。没有办法表明“这个页面是那个页面的子页面”;没有像“下一节”和“上一节”按钮这样方便的东西。Hansel 和 Gretel 肯定会在这里迷路,因为这里也没有“面包屑”(特殊的调试运算符 - 大约反式)。(作者注:你读过这个故事吗?这太不人道了。两个年轻的暴徒杀死了一位可怜的饥饿老太太,把她活活烧死在自己的烤箱里。当然,留下了一片狼藉,没有人能理解。我想这就是为什么现在的年轻人太敏感了——现在在睡前给孩子们讲故事还不够残酷!)继续——为了真正尝试 Gwiki,我从 NodeJS 输入了一些页面作为 wiki 页面,然后创建了一个自定义页面侧边栏模拟网站的实际结构。尽管当前页面未突出显示,但该侧边栏始终存在。链接必须手动维护,但总体而言一切正常。如果你愿意的话,你可以看一下:![GitHub 功能](https://cdn.javarush.com/images/article/149ab1d7-c723-4235-82cc-f308f272d65e/1024.jpeg)
#11 GitHub 页面
您可能已经知道 GitHub Pages 可用于托管静态网站。如果你不知道,那么你现在知道了。然而,本节专门讨论一个更具体的主题:使用Jekyll创建网站。最简单的形式是,GitHub Pages + Jekyll 可以使用漂亮的主题呈现 README.md 文件。例如,查看about-github中的我的自述文件页面:![GitHub 功能](https://cdn.javarush.com/images/article/65d0ed37-3f33-42be-9153-87ffb4d98930/1024.jpeg)
![GitHub 功能](https://cdn.javarush.com/images/article/3b9219f3-4d25-4c0c-bc9d-06d274114db5/1024.jpeg)
![GitHub 功能](https://cdn.javarush.com/images/article/b0631305-82f4-4f33-ac5f-2516eb742376/1024.jpeg)
我的想法
我对 GitHub Pages + Jekyll 组合(针对本文)研究得越多,就越觉得整个想法听起来很奇怪。“用最少的努力制作自己的网站”的想法很棒。但要使用它,您仍然需要本地计算机上的当前版本。对于如此“简单”的东西,有太多的命令行命令。我浏览了入门部分的七页,感觉唯一简单的就是我自己。我什至还没有弄清楚主页的简单语法或简单的“基于 Liquid 语言的模板机制”的基础知识。我宁愿自己写一个网站!老实说,我有点惊讶 Facebook 将其用于 React 文档,因为他们可能每天都可以使用 React 构建帮助系统页面并预渲染为静态 HTML 文件。他们所需要做的就是找到一种方法来接收现有标记文件,就像它们来自 CMS 一样。如果什么...#12 使用 GitHub 作为 CMS
假设我们有一个包含一些文本的网站,但我们不想将该文本存储为 HTML 标记。相反,我们希望将文本块存储在非开发人员用户可以轻松编辑的地方。最好有一些版本控制选项。也许甚至有某种同行评审过程。这是我的建议:使用存储在存储库中的标记文件来存储文本。并在客户端使用一个组件来检索这些文本并将其显示在页面上。我是 React 的粉丝,所以这里有一个正确的 <Markdown> 组件的示例,给定 Markdown 文件的路径,它将提取它、解析它并将其呈现为 HTML。class Markdown extends React.Component {
constructor(props) {
super(props);
// Конечно, вам нужно заменить это на свой URL
this.baseUrl = 'https://raw.githubusercontent.com/davidgilbertson/about-github/master/text-snippets';
this.state = {
markdown: '',
};
}
componentDidMount() {
fetch(`${this.baseUrl}/${this.props.url}`)
.then(response => response.text())
.then((markdown) => {
this.setState({markdown});
});
}
render() {
return (
<div dangerouslySetInnerHTML={{__html: marked(this.state.markdown)}} />
);
}
}
(我在这里使用 npm标记的包来解析 HTML 中的标记)URL 指向我的示例存储库,其中包含/text-snippets目录中的标记文件。(您还可以使用 GitHub API 来获取内容,但我怀疑您是否需要它。)您可以使用这样的组件:
const Page = () => (
<div className="page">
<div className="about-us">
<Markdown url="about-us.md" />
</div>
<div className="disclaimer">
<p>A very important disclaimer:</p>
<Markdown url="disclaimers/home-page-disclaimer.md" />
</div>
</div>
);
因此,现在 GitHub 在某种程度上充当了您想要托管的那些文本片段的 CMS。上面的示例仅在组件加载到浏览器中后检索标记。如果您需要静态站点,则必须将其呈现在服务器上。好消息!没有什么可以阻止您检索服务器上的所有标记文件(使用您喜欢的任何缓存策略)。如果您决定走这条路,那么使用 GitHub API 获取目录中所有标记文件的列表是有意义的。 奖励 - GitHub 实用程序!我已经使用Octotree Chrome 扩展有一段时间了,并向您推荐它。并非毫无保留,但我仍然推荐它。它在左侧显示一个面板,其中包含您正在浏览的存储库的树视图。
![GitHub 功能](https://cdn.javarush.com/images/article/8f2e5043-b760-4031-a14b-dc8c1b3c5e06/1024.jpeg)
![GitHub 功能](https://cdn.javarush.com/images/article/3387aad8-f885-4f24-93b9-dd60f6a70f8b/1024.jpeg)
GO TO FULL VERSION