`
chenyuguxing
  • 浏览: 40082 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

熟悉git命令的小游戏

 
阅读更多

开篇


可以根据下面的两个教程来系统学习。
猴子都能懂的 git 入门
廖雪峰的 git 教程

如今,Git 大行其道,颇有一统天下之势。
如果你的技能树上 Git 和 Github 的图标还没有点亮的话,你都不好意思说你是程序员。
别说互联网企业,我接触到的许多传统企业都在从 SVN,Clear Case 等迁移到 Git 上,甚至大厂还会有一个团队去定制适合自己企业的 Git 服务器。

很多人简历上写的「精通 Git 与 Github」,但如果你问他熟悉到什么程度的话,回答通常是「就是会用常用的addcommitpush操作」。

但工作中我们会遇到一些更加复杂的场景:

* 忽略某些文件
* 创建,删除分支
* 找到最后修改某行代码的人
* commit 后发现里边包含一个不应该提交的文件
* commit 后发现少提交了一些文件
* 一个文件中的多次有改动,怎么做到只提交其中的一部分?
* 怎样整理提交记录使其更加整洁?
* 快速定位是哪一次提交引入了 bug
* ...

作为一线程序员,我们要如何快速学习 Git 以发挥其最大威力呢?

今天我就要向大家介绍一个工具,准确说应该是「游戏」,名字叫「githug」,它把平常可能遇到的一些场景都实例化,变成一个一个的关卡,一共有 55 个关卡:

#1: init
#2: config
#3: add
#4: commit
#5: clone
#6: clone_to_folder
#7: ignore
#8: include
#9: status
#10: number_of_files_committed
#11: rm
#12: rm_cached
#13: stash
#14: rename
#15: restructure
#16: log
#17: tag
#18: push_tags
#19: commit_amend
#20: commit_in_future
#21: reset
#22: reset_soft
#23: checkout_file
#24: remote
#25: remote_url
#26: pull
#27: remote_add
#28: push
#29: diff
#30: blame
#31: branch
#32: checkout
#33: checkout_tag
#34: checkout_tag_over_branch
#35: branch_at
#36: delete_branch
#37: push_branch
#38: merge
#39: fetch
#40: rebase
#41: repack
#42: cherry-pick
#43: grep
#44: rename_commit
#45: squash
#46: merge_squash
#47: reorder
#48: bisect
#49: stage_lines
#50: find_old_branch
#51: revert
#52: restore
#53: conflict
#54: submodule
#55: contribute

安装

首先我们需要来安装这个游戏,githug是用 Ruby 编写的,可通过如下命令安装:
gem install githug

如果遇到权限问题,请加上sudo
sudo gem install githug

安装成功后,在 Terminal 里进入你常用的目录,输入githug,会提示游戏目录不存在,是否要创建一个,输入y然后回车:



根据提示cd git_hug进入游戏目录,准备开始游戏。

基本命令

在开始前我们还需要了解游戏的一些基本操作:

  • play - 默认命令,检查是否过关
  • hint - 显示过关提示
  • reset - 重启本关,或者重启到指定的某关
  • levels - 显示关卡列表

来试一下,githug reset


示例

我以第一关为例子给大家演示一下玩法。

第一关的名称是:init,提示是:「一个新目录 git_hug 被创建了,请把它初始化为一个空仓库」。
假设现在我不知道该怎么过关,我可以查看过关提示:



指示是:「你可以输入git命令来查看git命令列表」。


看最后一行,原来用git init就可以初始化一个空仓库,接着输入githug进行过关检测:

太棒了!顺利进入第二关!

怎么样?明白了吗?后面的 54 关就靠你自己了哦


分享到:
评论

相关推荐

    一个C++初学者做的小游戏

    这个"一个C++初学者做的小游戏"很可能就是一个基于控制台的文本游戏,因为描述中提到"里面没有图像,全是COUT"。COUT是C++标准库中的一个输出流对象,用于在控制台上打印文本,它是iostream库的一部分。 1. **C++...

    微信朋友圈测试小游戏源码 php版.zip

    10. **版本控制**:使用Git进行版本控制可以方便团队协作和代码回溯,理解Git的基本命令如commit、push、pull、branch和merge等。 总的来说,这个项目涵盖了从后端开发、前端实现、数据库设计、游戏逻辑到微信接口...

    Java使用SWT JFreeChart控件实现的小游戏.zip

    在本项目中,"Java使用SWT JFreeChart控件实现的小游戏.zip" 提供了一个基于Java编程语言的游戏开发示例。这个项目适用于学生进行毕业设计、课程设计或自我学习,帮助他们掌握Java后端开发技能,特别是使用图形用户...

    微信小程序2048游戏

    这款小游戏深受用户喜爱,因为它结合了2048的经典玩法与微信小程序的便捷性,玩家无需下载安装,只需在微信内搜索即可体验。接下来,我们将深入探讨这款小程序背后涉及的IT知识点。 1. **微信小程序开发环境**:...

    java实现一个简单的五子棋小游戏,从Application 开始 main运行spring项目

    理解Git的基本命令(如git clone、git add、git commit和git push)对于协作开发和代码版本管理至关重要。 总的来说,这个项目涵盖了Java编程、GUI设计、Spring框架的应用以及基本的软件工程实践。通过参与这样的...

    人工智能-项目实践-C#-基于C#的游戏平台.zip

    这要求开发者熟悉Git命令,如clone、commit、push和pull等,以及GitHub或类似的代码托管平台。 综上所述,这个项目涵盖了C#编程、数据库设计、游戏AI基础、用户界面开发、代码复用与版本控制等多个IT领域的知识,...

    微信HTML5在线朋友圈游戏源码带安装部署教程-冰桶挑战.rar

    7. **版本控制**:源码可能使用Git等版本控制系统进行管理,学习基本的Git命令对理解项目历史和协同开发很有帮助。 8. **微信开放平台**:对于微信游戏,开发者需要注册微信开放平台账号,获取AppID,以便在游戏中...

    微信HTML5在线朋友圈游戏源码带安装部署教程-测测你下半年的发财关键.zip

    微信小游戏通常基于微信提供的JS SDK,该SDK提供了与微信接口交互的能力,包括获取用户信息、分享到朋友圈、支付等。开发者需要熟悉微信开发者文档,理解如何正确使用这些接口。 三、“测测你下半年的发财关键”...

    吃金豆报告

    - **命令模式:** 用于解耦发送者与接收者,使得发送者不必知道命令的具体接收者。 - **事件监听器:** 用于接收并处理来自用户界面的事件,如按键事件、鼠标事件等。 **4.7 Display 类相关技术与知识点** - **...

    游戏攻略社区_微信小程序模板js代码前台前端H5页面源码.rar

    5. **Git版本控制**:gameTips-master的命名表明项目使用Git进行版本管理,开发者可以了解如何使用git clone、git commit、git push等命令来协同开发和版本控制。 6. **项目结构**:一个完整的微信小程序项目通常...

    funcode C++游戏黄金矿工

    通过分析和学习《Funcode C++游戏黄金矿工》,初学者不仅可以熟悉C++编程,还能掌握游戏开发的基本流程,为今后的项目奠定坚实的基础。在实践中不断迭代和优化,将使游戏变得更加完善,也进一步提升个人的编程技能。

    java毕业设计&课设-宝可梦图鉴(游戏小程序).zip

    开发者应熟悉Git的基本命令,如commit、push、pull等,以及分支管理和合并冲突的处理。 8. **文档与注释**:清晰的代码文档和注释能帮助他人理解代码逻辑,也是项目交付的重要部分。开发者需编写README文件,解释...

    微信小程序-滑块拼图游戏.zip

    【微信小程序滑块拼图游戏】是一个基于微信小程序平台开发的小型娱乐应用,它利用了微信小程序提供的API和框架,为用户提供了简单的拼图游戏体验。这个项目涉及到的知识点广泛,包括前端开发、微信小程序开发规范、...

    【Python项目源代码】开心麻花影视作品分析(附程序使用说明+配置文件).zip

    7. **游戏开发**:项目包含小游戏源代码,这部分可能使用Pygame库,需要了解游戏逻辑设计、事件处理、图形绘制和动画制作等相关知识。 8. **程序文档和使用说明**:附带的程序使用说明和配置文件,帮助用户理解项目...

    2048_DEMO.zip

    描述中提到的"自己做的小项目,为gec6818上的2048小游戏",意味着这是一个个人开发的项目,特别设计在gec6818平台上运行。gec6818通常指的是一个嵌入式开发板或者微控制器,可能是基于ARM架构的硬件平台,用于教学或...

    Spooty:[开发中] 小游戏库

    Spooty是一个正在积极开发中的小游戏库,专为海绵(Sponge)或Bukkit服务器平台设计。这个库的目标是为开发者提供一系列预构建的游戏模式和框架,以便他们可以轻松地创建和管理自己的迷你游戏。Spooty的核心功能可能...

    用python做2048游戏实验文档v0.1.pdf

    代码仓库地址为***,用户可以通过执行"git clone"命令来获取所需代码。 综上所述,该实验文档详细描述了如何在Python环境下使用wxpython库来创建GUI应用程序,包括环境的搭建、窗口的创建与管理、以及如何在窗口中...

    小程序地图定位微信小程序.rar

    1. **微信小程序开发**:微信小程序提供了自己的开发环境和语言(WXML和WXSS),开发者需要熟悉这些语言以及小程序的API,包括网络请求、页面跳转、用户授权等。 2. **地图定位API**:微信小程序提供了一套完整的...

    school-system:校园趣味游戏系统小程序

    10. **版本控制**:项目通常使用Git进行版本控制,开发者需要了解基本的Git命令,如commit、push、pull、branch、merge等,以便团队协作和代码管理。 通过这个"school-system"项目,开发者不仅可以提升JavaScript...

    battle-of-the-gods:简单的命令行游戏,宇宙的命运掌握在你的手中!

    - **命令行接口(CLI)编程**:游戏通过命令行操作,展示了如何利用操作系统命令进行游戏的启动和控制,这对于熟悉Git和其他命令行工具的开发者来说是个不错的实战演练。 - **Node.js和npm**:了解了如何在Node环境...

Global site tag (gtag.js) - Google Analytics