原文地址:http://bbs.9ria.com/thread-259587-1-2.html

”我确信Git是强大的,但是它看起来很复杂——我依然会坚持我当前的工作流“就像说“我也敢肯定像FlashDevelop 和SublimeText也是非常强大的,但是他们看起来也是很复杂——所以我仍然坚持用Notepad”。当然,学习这个确实要走些弯路,但是你的生活中确实有不可以缺少它,这看起来很愚蠢。在这篇文章中,我会解释为什么Git(还有GitHub)会这么伟大,还有会为你演示如何让你快速入门。



笔记:我在这里说得最多的是关于苹果系统上的版本控制,像Subversion,当然还有很受欢迎的Git,如果你有这样的选着自由的话,我推荐你选择它!



到底Git能为你做些什么



Git对于所有的游戏开发者来说都是有好处的,无论是独立开发还是团队开发。现在先让我们看一看最大的好处:



Git能够让回撤销所有你做过的改变



最重要的一点是,当你请求这个游戏的工作目录时,Git能让你获取到这样的一个”快照“,你还可以随时都可以恢复到任何的快照中。



这和那些当你为你的游戏生成一个新的版本时就为你弄一个整个文件的副本不一样,它相对来说更好。或者以电子邮件的形式给你发送一段带有描述的代码,这样的话你就不会丢失他!



另外,你还不被局限在同一条线上进行撤销和重做;你可以将你的整个项目分成一个树状结构的快照,你可以随意根据自己的意愿去将会不同分支的快照。意思就是你可以在你的1.1版本中添加一个新的特性,然后将它恢复到1.0版本,这样就能完成一个Bug的修复;或者你也可以用来试验你的特性,如果它让你不满意,你可以将它报废掉;或者让你的手机和平板项目虽然在一起,但是却相对对立开来!





Git不仅仅能够让你注释你的代码,它还能够让你注释你的作品!



事实上,Git并不是让你能够为你的代码添加注释——它是鼓励你去做这样的事情,甚至是要求你这样做!基本上,无论什么时候你保存一个快照,你就已经为你的上一个快照的改变写了一个注释。



下面是有关Tiled的几个示例注释,这是一个我们之前提到的关卡编辑器:

 



除了让你能够更加容易地在你的项目中找到一个特定的点(这个通常能够帮助你追踪到Bug产生的原因),还能让你养成一个良好的开发习惯:你会发现你会将自己的工作分厂很多小任务,这样做能够让你为每个部分都做个通过一个简短的注释就能完整地描述到它,比同时在8个不同的事情之间工作好多了!



Git能够让你更好地访问到其它的项目



到目前位置,我一直在谈论的是Git,它只是一个想ZIP或者email或FTP的软件。对比一下GitHub,它是一个能够让你保存你的快照的网站(或者是你整个的项目)。



其实还有其它保存Git的网址,当然还有一种可能就是你用你自己的服务器去保存你的Git项目的快照,但是到目前为止,GitHub是最好的。你可以认为他像Gmail:它可能并不是唯一基于Web的电子邮件应用程序,但是对于很多人来说它是。



有很多游戏或者是游戏工具都在GitHub在开源的,例如想Tiled(这个我之前提到过)还有Starling的框架这个我们之前也提到过)。这意味着你不仅可以下载到最新版本的Starling框架的一个zip的文件和可以将它提取到你的项目中,你也可以将它导入到你的项目中,这样它就会在它有变化的时候自动更新。



你也可以在问题建议中提出某些建议或者反映一些bug:



 



或者你也可以对这个项目弄一个本地的副本(通过"fork"),你可以在这个项目中添加你自己的功能或者修正某些bug,你可以提交这个自己项目给项目原本的持有者,并建议他合并成为主要版本。



(你会发现很多我们放到GitHub上的源文件都是从Tuts上读取到的-这样做的主要原因是为什么呢?)



Git能够让你更好地与其他的开发者进行协作



以上的所有理由使得Git对所有的独立开发者来说都是非常宝贵的!但是这些好处对团队开发来说本来也是非常方便的:

  • 相对于通过邮件附件共享所有东西或者Dropbox,在团队里面利用Git(无lung是通过GitHub的高端私人计划或者是其它托管方法)会使交流更加的简单。
  • 由于每个被添加到项目中的快照都带有一个附上注释和作者的标记,所以这样很容易追踪到是谁做了些什么。
  • 每个在团队中的人都能修改他们自己的代码,当你觉得你的代码可以的时候你可以将它提交到你的主项目中(从而能够避免破坏项目)。

Git也有一个功能让你能够合并不同的代码在一起,它能够让你很好地去处理冲突而不是盲目地覆盖项目的某些部分。



Git的搭建



过去安装Git和搭建它是一件很复杂的事情,因为涉及到要使用一些列的命令行去生成“SSH键”或者“ugh”。但是现在确实非常简单:你所要做的是就只用想在GitHub
forWindows
 或者 GitHub forMac。当让,我知道我曾经告诉过你GitHub是一个在网络托管Git的快照的网站,但是这里我只是告诉你通过安装GitHub去使用Git。这就会让人疑惑:GitHub应用是一个让你安装到Git并为你提供一个良好的接口的软件,它同时也提供另外一个选择让你能够在网页上托管你的快照。



其实不用太过担心这个问题。你只需要更具你的系统去下载并且安装它就可以了!除非你是使用Linux,这样的话我恐怕你要走一个相当复杂的过程



开始使用Git



我将会教你如何为你最近的游戏或者项目搭建Git,这样你就能真正地用到它,并不是随便的一些假的练习。我现在正在使用的GitHub的Windows版本,但是这些步骤和Mac上的版本有很多的相似之处。我现在假设bfxr就是我现在在用的工作项目,当然其实这并不是真的。



打开GitHub,然后点击创建开始创建一个新的”repo“(是”repository的简写“,这个是为你的游戏或者项目存储快照的地方)。你要为你的项目输入一个名字和描述,然后使用默认的路径就可以了(你不需要把它放到特定的目录中),最后要注意的是不要勾选Pushto
github



 



双击你新创建的知识库就可以在应用程序中打开它:


 





你会看到它会提示你有两个文件需要”提交“(这个将会以一个快照的形象添加到知识库中);这里还有Git的配置文件,所以要为它在CommitMessage 框中键入一个简单的注释并点击 Commit:


 



现在点击 tools(工具)>open inexplorer(从资源管理器中打开),然后就能打开这个项目的Git工作目录。那里除了两个配置文件之外什么都没有(还会隐藏一个后缀为.git的文件,这个文件或许你会看不到):


 



然后将你的项目全部都复制进这个文件夹里面(虽然看起来很乱,起码这样可以让你放心,因为如果你某些东西出错的时候你还存有一个备份)。


 



现在我们回到Windows的GitHub——它会通知你有新的文件出现了:


 



将这些代码都提交,这样你就搭建了你的第一个基础知识库了!现在在你的项目中改变某个文件,你可以添加一个新的文件或者修改已经存在的文件:


 







现在又回到Windows版本的GitHub,然后它就会检测到这些文件。提交这些改变,从unsyncedcommits(为同步提交)列表中点击revertcommit(恢复提交)。你现在会有一个新的注释,这个注释是从之前的注释中恢复的——这些开起来可能有点让人迷惑,但是这以为这你现在能跟踪到每一个你所做出的改变!


 

检查一下你这是项目中的文件夹:





你的新文件(或者是你其他文件的改动)已经没有了。如果你喜欢的话,你可以恢复这个恢复,仍然会在你的注释列表中添加一条注释,或者会滚到之前你在列表中它被移除的位置。



总结



就这些?虽然是,但是事实上也不是。我将这篇文章的素材都放到GitHub上了,所以你可以在这个网址上做一些“增强”练习(建议你添加一下你想添加的东西),记录一些“bugs”(例如似乎这篇文章的问题).



如果你确实很喜欢冒险,你可以尝试一下将这篇文章“保存”到你的电脑上,然后添加你自己的东西,然后提交一个添加的请求让它添加到这个网站上...如果这些对你来说不感兴趣,不用担心,下一个版本将会包含更多的细节。

原文链接:http://gamedev.tutsplus.com/tutorials/business/git-and-github-for-game-developers/

翻译词数:1409

【转】译—游戏开发者应该如何应用Git和GitHub的更多相关文章

  1. 腾讯云GAME-TECH游戏开发者技术沙龙(深圳)开启报名啦~

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~. 作者:由腾讯游戏云发表在云+社区 腾讯云GAME-TECH沙龙继1月杭州站后,将于3月30日来到深圳站,与游戏厂商和游戏开发者,畅聊游戏安 ...

  2. 游戏安全有多重要?——GAME-TECH游戏开发者技术沙龙

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由云+社区运营团队发布在腾讯云+社区 腾讯云GAME-TECH沙龙继3月深圳站后,将于4月13日来到北京站,与游戏厂商和游戏开发者,畅聊 ...

  3. 工作流程,编程,调试,性能:Unity游戏开发者应该学习的20个改进技巧

    Unity 是一个备受欢迎的游戏开发平台.它的功能令人印象深刻,同时也迎合了不同的游戏开发需求.游戏开发者可以使用 Unity 创建任何类型的游戏,从世界级的 RPG 游戏到最流行的增强现实游戏 Po ...

  4. 知物由学|游戏开发者如何从容应对Unity手游风险?

    本文由  网易云发布. "知物由学"是网易云易盾打造的一个品牌栏目,词语出自汉·王充<论衡·实知>.人,能力有高下之分,学习才知道事物的道理,而后才有智慧,不去求问就不 ...

  5. 知名游戏开发者称 C++ 是一种非常糟糕、可怕的语言(C++不是一门可怕的语言,可怕的是一群没有耐心的程序员来使用C++这门语言)

    抛出一个问题:C++ 真的很可怕吗? 2016 年底,C++ 之父 Bjarne Stroustrup 在一次采访中表示:”C++ 让编程专家很容易编写出复杂.高性能.低资源消耗的代码,但不足以成为广 ...

  6. Cocos引擎现身 IndiePrize 全球游戏开发者大会!Cocos的两大男神成为压轴嘉宾

    2019全球游戏开发者大会今天11月10日,在深圳南山海上世界文化艺术中心拉开帷幕.除了号称精品游戏"奥斯卡"的IndiePrize将在现场展开最终角逐,更有来自美国.俄罗斯.澳大 ...

  7. Git 一些关于 Git、Github 的学习资源

    一些关于 Git.Github 的学习资源 昨天浏览 Github 的是时候发现了 Githug 这个游戏,这个游戏用来帮助菜鸟们学习使用 Git 的. Githug is designed to g ...

  8. 【风马一族_git_github】git与github的英文记录

    Pull requests  Issues Gist 请求 问题 要点 ---------------------------------------------------------------- ...

  9. 本地代码git到github上

    本地代码git到github上 对于个程序员来说,不写自己的博客,没有自己的作品集没有Github就不算好的程序员!咳咳~ 开个玩笑.对于我个人来说,要做个程序员,就要有自己的作品集和技术博客(我说是 ...

随机推荐

  1. wpf后置代码中的Grid布局以及图片路径的设置

    之前用Grid练习连连看布局时,遇到了几个困惑.此次就把当时的一些收获写出来,供以后翻看. 图片路径可能比较常用,所以就写在第一个了. 在xaml中,设置图片非常简单,只要把图片拷贝到资源目录(这里假 ...

  2. 用sqlyog迁移mysql数据库

    本人大学大学基本就学怎么打游戏了,游戏玩的还不太好,大三的时候突然觉醒报了某培训,然后就出来工作了.这导致许多东西很不扎实,都是在工作中慢慢摸索.今天处理了一个关于mysql数据库迁移的问题,好好总结 ...

  3. js常见算法

    1:实现一个函数clone,可以对JavaScript中的5种主要的数据类型(包括Number.String.Object.Array.Boolean)进行值复制. function clone(Ob ...

  4. 解析令人费解的java泛型

    对于我们java中的泛型,可能很多人知道怎么使用并且使用的还不错,但是我认为想要恰到好处的使用泛型,还是需要深入的了解一下它的各种概念和内部原理.本文将尽可能的囊括java泛型中的重要的概念.主要内容 ...

  5. flume-sink报错 java.lang.IllegalStateException: close() called when transaction is OPEN - you must either commit or rollback first

    1. 确认代码无误(根据情况修改,表示若获得不了数据不会自动commit或者rollback): Event event = channel.take(); if (event == null) { ...

  6. 安卓的UI界面开发(初学者推荐)

    一  随便扯扯 用户界面设计是程序开发的一项重要内容.在界面设计的过程中,需要考虑如何制作出UI界面,怎么样控制UI界面两大块. 任何有编程常识的人都知道:软件界面是开发者添加控件,编写控件控制逻辑, ...

  7. 【转】jqGrid学习之安装

    jqGrid安装很简单,只需把相应的css.js文件加入到页面中即可. 按照官网文档: /myproject/css/             ui.jqgrid.css             /u ...

  8. storm 1.0版本滑动窗口的实现及原理

    滑动窗口在监控和统计应用的场景比较广泛,比如每隔一段时间(10s)统计最近30s的请求量或者异常次数,根据请求或者异常次数采取相应措施.在storm1.0版本之前,没有提供关于滑动窗口的实现,需要开发 ...

  9. Mr.聂 带你成为web开发大牛——入门篇(上)

    作为一名IT届的后生,当初也经历过懵懂无知的实习期,对那种无力感深有体会.在这,希望能用我这几年的开发经验,让各位即将踏入或者刚刚踏入web开发领域的新人们少走些弯路.鉴于这是入门篇,下面我就从零为大 ...

  10. ajax跨域请求时,sessionId不一样,导致无法记住登陆状态

    遇到这样一个场景,就是前端的域是dev,请求接口时,接口的域是beta,即使在服务端设置了cookie存放的域,'COOKIE_DOMAIN'   =>  '.roboming.com',虽然c ...