【转】译—游戏开发者应该如何应用Git和GitHub

原文地址: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的几个示例注释,这是一个我们之前提到的关卡编辑器:

【转】译—游戏开发者应该如何应用Git和GitHub 



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



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



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



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



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



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



【转】译—游戏开发者应该如何应用Git和GitHub 



或者你也可以对这个项目弄一个本地的副本(通过"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和GitHub
 



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

【转】译—游戏开发者应该如何应用Git和GitHub
 





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

【转】译—游戏开发者应该如何应用Git和GitHub
 



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

【转】译—游戏开发者应该如何应用Git和GitHub
 



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

【转】译—游戏开发者应该如何应用Git和GitHub
 



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

【转】译—游戏开发者应该如何应用Git和GitHub
 



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

【转】译—游戏开发者应该如何应用Git和GitHub
 



【转】译—游戏开发者应该如何应用Git和GitHub



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

【转】译—游戏开发者应该如何应用Git和GitHub
 

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





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



总结



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



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

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

翻译词数:1409

上一篇:C++杂谈(三)产生随机数与time函数


下一篇:mybatis java.lang.UnsupportedOperationException