README.md
LearnGitBranching是一个git存储库可视化工具,沙箱,以及一系列教育教程和挑战。 它的主要目的是帮助开发人员通过可视化的强大功能来理解git(在命令行上工作时不存在这一点)。 这是通过具有不同级别的游戏来实现的,以熟悉不同的git命令。
您可以将各种命令输入到
LearnGitBranching(LGB)中
当处理命令时,附近的提交树将动态更新以反映每个命令的效果:
这种可视化与教程和“关卡”相结合,可以帮助初学者和中级开发人员提高他们的版本控制技能。这里有一个快速演示:
https://pcottle.github.com/learnGitBranching/?demo
或者,您可以在此处正常启动应用程序:
https://pcottle.github.com/learnGitBranching/
沙盒模式
默认情况下,应用程序以“沙箱模式”启动,并且已创建基本存储库。在这里,您可以输入命令并随意使用存储库。请记住,你可以
undo 撤消上一条命令的效果
reset 以重新开始使用干净的平板(也在级别中工作)
git clone 来模拟远程存储库!
沙箱模式可以很好地向朋友展示一些东西,但真正的干货是levels
Levels
键入levels以查看可用的课程/挑战(以及到目前为止您已解决的课程)。每个级别系列旨在教授一些高级git概念,每个级别的选项卡分隔主要的信息世界(如远程存储库与本地)。
对于一些额外的乐趣,有一个“git golf”概念,我们可以跟踪您使用多少命令来解决每个级别。看看你是否能匹配我们的所有记录!
分享永久链接
您可以使用命令URL参数在加载时执行的任意命令集共享LearnGitBranching的链接。您可能还想使用NODEMO url param禁用此案例的介绍对话框;这是一个开始的例子。
Level Builder
您可以使用构建级别命令构建一个level。该对话框将引导您完成整个过程,最后您可以导出级别以获取JSON blob。将其粘贴到一个问题中或直接粘贴到一个问题中,我可以检查它/合并你的更改!你也可以通过让他们运行“导入级别”直接与朋友分享这个级别,或者只是在url params中指定一个gist ID,如下所示:
https://pcottle.github.io/learnGitBranching/?gist_level_id= a84407351f9c9f0cb241
报告错误/未解决问题
报告错误时,尝试在再生错误之前的状态下在JS控制台中运行命令
debug_copyTree()
这可以避免必须复制您用于进入特定状态的所有命令。 (然后我可以使用importTreeNow命令来达到那个确切的状态)
应用程序如何工作/贡献功能
LearnGitBranching是一个非常简单的应用程序(从技术角度来看)。没有后端数据库或任何AJAX请求 - 它是用JavaScript编写的100%客户端应用程序。生产版本(在github.io上)实际上只提供了一些带有一些JS和CSS的HTML页面。剩下的魔力在于JavaScript的9k +行:P
因为应用程序包含大量代码,所以我已将所有内容编写到Nodejs样式的模块中。这些模块与Browserify一起打包,然后以浏览器可以理解的格式发送。
截至2013年12月,我已经将构建过程迁移到使用Grunt>0.4,因为旧版本给很多人带来了麻烦。它现在应该是相当稳固的!
以下是构建的高级过程:
代码被写入需要其他模块的node.js模块中
CSS只写入一个样式表(没有大量的样式)
新HTML被写入模板HTML文件(template.index.html)。仅需要新视图
该应用程序是“内置的”,输出:
index.html在根目录中
./build目录中的CSS和JS文件
如果正在为生产构建应用程序,则会对这些CSS和JS文件进行哈希处理并运行测试
而已!
因此,如果您在本地构建应用程序,那么只需在repo的根目录中打开index.html即可运行应用程序。很简单
建立自己/贡献功能
为了在应用程序中提供核心功能,您可能希望在提交拉取请求之前至少测试一次更改。这意味着你需要“Grunt.js”构建工具来构建应用程序:
https://gruntjs.com/getting-started
您还需要npm来下载项目的所有依赖项。
一般工作流程/步骤如下:
git clone <your fork of the repo>
cd learnGitBranching
npm install # to install all the node modules I depend on
git checkout -b newAwesomeFeature
vim ./src/js/git/index.js # some changes
grunt fastBuild # skips tests and linting, faster build
# after building you can open up your browser to the index.html
# file generated and see your changes
vim ./src/js/git/index.js # more changes
grunt build # runs tests and lint
git commit -am "My new sweet feature!"
git push
# go online and request a pull
或者,您也可以在预先配置的在线工作区中构建和运行应用程序:
有帮助的Folks
赞扬这些勇敢的灵魂,对我们的沙箱进行广泛测试并发现bug:
Nikita Kouevda
Maksim Ioffe
Dan Miller
以下是帮助翻译的英雄:
Jake Chen
우리깃 ("urigit")
"bcho"
"scientific-coder"
"ace-coder"
Joël Thieffry
Jens Bremmekamp ("nem75")
"hilojack"
Ming-Hsuan-Tu ("twmht")
Mikhail Usov ("mikhailusov")
Matias Garcia Isaia ("mgarciaisaia")
Marc-Olivier Arsenault ("marcolivierarsenault")
Eroany H Leader ("lhyqy5")
Honorat ("ahonorat")
Vasil Kulakov ("coyl") & Lyubov Agadjanyan ("shayenblue")
Aliaksei Berkau ("alexeiberkov")
Mizunashi Mana ("mizunashi-mana")
对于那些提出pr的人来说,也是一个巨大的呐喊! 查看我们在贡献者视图中的30多个贡献者
每个报告过一个问题的人都已成功关闭!
往期内容:
开源小工具帮你把代码变成好看的图片
代码编辑器秒变音乐播放器?这款插件你值得拥有。
世界上最简单的人脸识别库
c++写的在终端上的2048游戏
后端接口和文档自动化生成工具
Java全能工具包
终端的Docker管理ui,不用再记各种命令啦
mac录屏显示输入神器keycastr
命令老是记不住?tldr++来帮你
一款全能的下载工具
后端程序员常遇到的面试问题集合
JAVA写的完整的电商系统
Tensorflow使用帮助手册
快来免费认领你的个人ai助理leon
用JS写的windows95操作系统
一个Envoy驱动的下一代Api网关:Gloo
一款功能齐全的客户端( iOS 、Android )研发助手,你值得拥有
YAML, TOML, JSON和HCL格式之间转换的小工具
可视化查看github文件提交记录的小工具
一份详尽的cs技术学习笔记(面试必备)
又双叒叕一个小程序开发框架
对方不想说话,并向你扔来了世界最好的语言的运行时
git commit emoji 使用指南
论如何写出诗一样的代码
【哪里有困难,哪里就有程序员】追踪问题疫苗企业销售数据走向
如何判断程序员正在做什么
为移动端异构计算平台优化的神经网络计算框架
终端json美化工具jq,你值得拥有
命令行终端上看世界杯
基于Three.js的Web3D地球数据可视化库Gio.js
又一个UI相关的前端框架【腾讯出品】
基于Go语言的又一重磅项目
webssh: 基于网页的ssh客户端
可能是最好用的微信机器人开发sdk
使用HTML或Pug交互式创建 PDF 文档
2018 年成為 Web 開發人員的路線圖
计算机科学速成课
ngrok: 内网穿透前后端联调利器
dayjs: 处理时间和日期的 JavaScript 库
G6: JavaScript 图可视化引擎
vividjs: 一个易用的svg库
JavaScript 算法与数据结构
UETool: 饿了么打造的可视化设计调试工具
proxyee-down: 百度云下载神器
Taro: 用 React 的开发方式开发小程序
Octotree: Github看代码必备神器
gtop: 一个用node写的界面美丽的终端监控软件
Httpie: 现代Http命令行客户端
可能是最好用的php管理后台生成工具(10分钟极速生成)
面向程序员的优质代码库清单
腾讯开源作品整理
前端信息源集锦
前端开发清单
后端架构师技术图谱
nodejs之父ry推出新一代的node:deno
欢迎小伙伴后台留言推荐好的Github项目:)
我们会对项目进行:
Readme的中文翻译简化
项目内容扩展
源码解读
等等
如果觉得好看或对您有帮助记得点好看
欢迎分享给朋友或朋友圈~~
您的鼓励是我们持续更新的动力