虽然程序员们都喜欢尝试新的东西,不过我还是不得不说,git这东西不好用,特别是对于我这样用惯了GUI工具的人来说。不过好歹git还是有一个windows版的工具,土是土了点,但比起摸黑一般的bash命令就简单多了。
其实mangos的开发人员弄这个难用的git也是因为他们不喜欢win,在论坛上有篇贴子 http://getmangos.com/community/showthread.php?t=4045 ,这里是截图:
好了,这种争论还是少说。下面只是一个最简单的使用git获取mangos代码的流程,给和我一样想看看mangos最新代码,又不熟悉git操作的人一个参考。
操作步骤:
1. 先从服务器上checkout mangos代码
这一步还是很简单的,而且最初我不知道怎么更新时,就是一遍又一遍的checkout,汗~
就像上图这样,Clone Existing Repository,然后输入mangos仓库的地址:
第二行是你本地的文件夹位置,随意填写,点击Clone就开始下载代码了。
2。更新mangos代码。真正复杂的是这里,git的代码仓库操作方法与svn还是有些差别的,首先,需要从服务器上获取到最新的代码,在git gui上就是 Remote --> Fetch from --> Origin
这里代码获取到本地了,但并不像svn一样就合并到了本地代码仓库,此里需要做的是第3步,合并到本地。
3。合并代码到本地版本
在git gui上的操作为 Merge --> Local Merge
点击后会出来一个新容器,按如下方式
注意选择origin/master,如果fetch后并没有origin/master,表示从上次更新到现在没有人提交代码,这时就不需要再做后面的操作了。
然后点击merge开始合并,正常情况下就会出现success,当然如果你修改了本地的代码,那有可能会出现代码冲突,后面会说到这个情况。
这是合并成功后的界面,显示出哪些文件做过改动:
如果只是想获取最新的代码来查看,那这样就足够了,每次执行步骤2和步骤3即可,但如果同时又想改一改代码玩玩,那就需要再了解下git的branch机制了。
4。本地版本的切换,使用checkout --> master。一般来说,git自动生成的branch都叫master,就像在fetch mangos服务器代码时看到的一样,但同时又可以创建很多个branch,这一点svn类似,也就是上面看到的origin/310,等等。这些是mangos参考中创建的分支,在本地也同样需要,其实git是部分服务器参考与本地参考的,所有checkout出来的参考都是对等的,一样的。
所以,本地机器也需要创建branch,包括默认创建的master。然后还需要一个branch与服务器同步,我们可以叫他remote,创建完后将其checkout,会看到这样的画面:
这表示已经将remote分支设为当机工作分支了。
这里设两个分支的目的是为了将服务器同步的代码与本地修改的代码分开
master: 本地的开发分支
romote: 与服务器同步的分支
这样一来,在第3步合并到local时要先checkout romote分支,等合并完成后再切换到master分支,把remote分支的改动merge到master上,也就是把mangos开发人员的改动与自己的修改合并。
当然,这只是一个建议的做法,如果全都在master分支上也可以,只是每次fetch在merge时都有可能需要解决冲突问题,并且没有一个直接可以获取的干净的服务器代码。
最后,这里没有涉及到代码的push,因为我们都只有mangos代码的读权限 :P 如果想尝试下git的版本管理与协作,网上还是有些教程的。