git 已经火遍全球了,不仅仅是因为免费,还是因为好用强大优雅,和Java一样,越用越觉得好用
免费的git
git是免费的代码管理软件,前面文章介绍了git的使用和来源,他是有Linux创始人花费一周时间用c写的代码管理软件。
强大的合并能力和代码管理能力,让你完成所有版本控制能做的事情,甚至在有的方面更强,而且开源免费,你不需要花费一分钱就能够快速的在你的团队里面使用起来!
而且作为主流的版本控制软件,使用起来非常简单。当然我这里就不再赘述,如有需要再讲。
强大的git
git本身就是为了Linux这样的开源软件源代码管理开发的,所以特别能支持多人协作开发(能明白含义就行-。-),在这个互联网壮大的时代,团队开发是创新和发展的基石,每个人都有自己的idea(想法),都可以把自己的热情和精巧的代码写入团队合作的项目里面,让项目更加稳健壮大,而且可以让别人审查学习自己的代码,互相进步是效率提高的不二之选,而git就提供了多人同时协作开发后,快速强大的分支合并能力,远端推送,代码克隆,分支管理,热修复等等,代码管理的问题都有解决的方案,如果你遇到了难题,不妨搜索一下,可能已经支持解决了。
好用的git
各个平台都可以使用,git可以建立远端的代码仓库,建立webhooks(合并分支触发编译打包,虽然其他的也有,但是好用的方法都列一下),git提交注释(强制要求必须提交注释,不然自己都忘了写了啥),git安装简单、使用方便,几乎不需要花费太多的时间成本(新手不需要记住全部的命令,基本会下载clone,会上传 push ,会合并pull就行了,复杂的再学呗)
干货来了:
git clone -b develop http://qiushi@git.xxxx.com/xxxx/xxxx.git
git 是基本命令
clone -b develop 是克隆命令,-b develop 是指定分支为develop 可以不指定,默认是master分支,一般我们使用develop分支开发。
后面网址就是你克隆的地址一般项目主页都会有一键复制的按钮,我一般选择就是http的,注意再http://后面这个qiushi@是我自己加的,表示使用这个用户名来克隆代码,不然对于一些私有的仓库(企业一般仓库都是私有的,不使用用户会提示仓库不存在哦)
git pull origin develop
这就是合并代码请求,就是把远端的develop分支代码和我当前分支的代码合并,一般准备写功能的时候pull 一下,add 、commit提交之前pull一下,就好了。
你是不是担心没有add、commit自己的代码之前pull的时候会丢失掉自己已经写的代码。
当然不会!首先git 对于没有add的代码是不会做任何操作的,对于已经add但是没有commit的代码会检查代码,如果你和远端的代码没有冲突就不会产生问题,这个好用的产品是不会出现这样的问题的。
当然如果你是新手,你可以写代码之前pull一下就好了,然后推送到你的分支,让老鸟来合并你的代码确保没有问题。
git push origin qiushi
推送当前qiushi分支代码到远端qiushi,一般同一个分支就可以简写,这也是最常用的写法,但是如果你要推送到develop分支呢?是不是git push origin develop
不是!而是必须指定分支名,git push origin qiushi:develop,表示推送本地分支qiushi到远端的develop分支
其他的命令就自己再琢磨下吧
优雅的git
git 专注于代码管理,实际上我们只需要核定的代码就能够在另外的机器上运行起来,但是idea或者eclipse常常会生成一些编译文件,这些编译文件每次生成的都不一样,会常常发生文件改变,如果我们不小心把这些问题上传到git仓库里了,看着就杂乱而且烦人,但是提交的时候会提示我们勾选提交,还需要手动去掉不勾选的?这也太难用了吧,实际上不需要复杂的操作,一般项目生成的时候就会创建.gitignore文件,在根目录下(就是src同级目录),没有就创建一个,文件名一样就行了,然后里面添加内容,内容很简单
就像这样*.apk 表示忽略所有的以.apk结尾的文件,比如你可以写上*.iml表示,而target就表示整个target文件夹的内容都被忽略
注意,以及add了的,忽略是不生效的,只会忽略没有add的文件,如果你现在的仓库里面已经有这个多余的文件了,先使用删除命令删除掉,然后才能生效,比如target文件夹,删除命令如下
git rm -rf ./target
其实和普通的删除命令一样,但是需要使用git开头,表示从git中删除,不然git会认为你是误删除的。这样新编译生成的target文件就是新的文件了,忽略就会生效了。
这样仓库的代码是不是看起来就简单整洁多了,记住gitignore文件对于已经提交的是不生效的哦,因为你提交的就表示是需要检测更改的,当然如果是误提交的,直接删除就可以了。
(日常,侵删~)