资讯专栏INFORMATION COLUMN

「Do.007」Android实战项目(2)——使用Github进行版本管理

dackel / 2517人阅读

摘要:当我们无法连接的服务器时,我们将无法进行版本操作。而分布式每个开发人员手中都有一套完整的版本控制系统,不需要依赖远程服务器,就可以进行版本控制管理。在连接了服务器之后,只是合并同步了整个版本库。

首发公众号:Android程序员日记
作者:贤榆的榆
如果你觉得有帮助欢迎关注、赞赏、转发
阅读时间:2128字 6分钟
一、版本控制介绍

要开始写代码,那么这些问题我们需要考虑一下了

那么如果有多人协作,该怎么合并和管理代码?

如果需要在一个模块开发完成了之后做一个标记,我该怎么操作?

如果已经线上的应用遇到bug,我该如何找到线上的那份代码去修复bug?

...

答案就在小标题中——我们需要版本控制
简单来说版本控制就是,对我们代码的增、删、改、查进行管理,通过提交的动作来记录我们在这份代码中留下的每一个足迹。除此之外,它的另一大功能就让你和你的小伙伴可以协作开发,这没什么好解释的了,如果没有它,难道要你和你的小伙伴人肉合代码吗?那太残忍了。

二、版本控制工具有哪些?

目前市面上最常见,也是各大公司最常用的版本控制分为两大类(当然早起还有CVS、RCS等等,这些基本要绝迹了我们就不谈了):

Svn:集中式版本控制

Git: 分布式版本控制

而它们之间最大的区别也已经体现在了上面的解释上面了,分布和集中
集中式,就是所有的代码提交都会依赖于一台中心服务器才能操作,每一次操作也只是对本地正在修改的分支的拉取和提交。当我们无法连接svn的服务器时,我们将无法进行版本操作。

而分布式:每个开发人员手中都有一套完整的版本控制系统,不需要依赖远程服务器,就可以进行版本控制管理。在连接了"服务器"之后,只是合并同步了整个版本库。之所以给服务器打上了双引号,是因为,在分布的版本控制中,每一个终端都可以作为那台所谓的“服务器”存在。这就是去中心化!

这里放两张图给大家直观的感受一下(图片来自网络)


最后简单一句话:版本控制——无论是svn还是git 都是一台code的时光机器,它记录了我们每一个重要的时间节点,可以随时带我们回到那个节点!

三、github安装及初步使用

github是一个目前市面上最大的基于git(分布式版本控制)面向开源及私有项目的软件项目的托管平台。但他的作用和使命都远不止成为一个免费的托管平台。只是目前我们先了解它作为一个免费的Git版本控制仓库的该如何使用。所以别纠结,这里我们暂且将github=git来看待,后面应该会有机会给大家介绍github真正的强大

3.1 安装配置Git环境
Mac版地址:https://gitforwindows.org/
Win版地址:https://gitforwindows.org/

第一步:安装

mac上如果你装了xcode ,那么也可以省去你一部分工作了,Xcode 里面已经我们集成了Git。
win 安装完成之后需要环境变量,然后打开cmd终端,输入git --version 但你看到对应版本号时,说明安装成功了!

第二步:配置用户明和邮箱

$ git config --global user.name "Your Name"
$ git config --global user.email "email@example.com"

说明:git config命令的--global参数,用了这个参数,表示你这台机器上所有的Git仓库都做了该配置。但是对于公司的项目你想要配置公司的邮箱,那么你可以在公司的版本控制目录下去掉--global参数对该单个项目进行重新配置!

第三步:给AndroidStudio 配置git
win:打开File–>Settings–>Version Control–>Git

mac:打开AndroidStudio–>Preference–>Version Control–>Git

配的地址就之前git的安装路径,点击test可以测试是否匹配成功

3.2 github创建仓库
gitbhub官网:https://github.com/

前面两步注册和登录没有太大的技巧性,就是你品尝注册其他的账号没有太大的区别,这里放两张图意思一下,就不再赘述了!

1、先注册

2、登录

3、在github中添加ssh Key

如果你不想每次将本地仓库的内容推送到github上时都输入密码。那么你有两个选择

在AndroidStudio中配置github的账号密码,像前面配置git一样

第二个就是配置ssh key

第一步:生成public/private rsa key pair
在命令行中输入

        
        ssh-keygen -t rsa -C "your_email@example.com"

默认会在相应路径下(/your_home_path)生成id_rsa和id_rsa.pub两个文件

第二步:粘贴ssh key
用下面的命令将sshkey的内容复制到剪贴板
mac

        
        pbcopy < ~/.ssh/id_rsa.pub
        

win

    
        clip < ~/.ssh/id_rsa.pub
        

第三步:添加sshkey到github中

4、创建新的仓库

登录后,点击主页右上角的➕号,然后选择New repository

跳转到如下界面后,我们填写仓库的相关信息

注:
Publi:创建一个开源库,对所有开放。
private:创建一个私有库,尽自己可见,这是一个收费项。
initialize this repository with a README:创建仓库的同时生成一个readme文件。

5、初始化本地仓库并同步到刚刚建立的github远程仓库


我们根绝上图中红色框内的提示,用令行去创建一个新的repository并将其同步到远程仓库

此时我们刷新github的网页,是会这样的:

这样我们就成功在github上面,管理了我们的第一个文件README

3.3 创建develop分支并推送至github

1、介绍一些git常用命令

 //从当前所在分支切出一个名为develop的分支
 //不加-b 就是直接切换分支,如果没有改分支,命令行会提醒你的
git checkout -b develop

//检查项目中是否有未进行版本控制和已修改的文件
git status 

//将项目当前目录下所有文件到暂存区
git add .

//提交暂存取里的代码到本地库
git commit -m"提交log"

//同步本地分支到远程仓库,如果远端没有develop会自动创建!
git push origin develop

2、不想提交的文件添加.ignore文件

在我们项目当中总有一些文件时我们不需要提交的,那么我们可以将它们添加到一个.ignore文件中。那么在我们执行git add 的时候就会忽略倒着写文件。

当然在我们创建好项目的时候这个文件git已经帮我创建好了,所以暂时我们什么都不用动。

3、实战练习

这回打脸,大家会看到当我运行了git status之后,你看到了idea文件夹,其实这个文件夹是没必要提交的。仔细看了一下ignore文件发现,默认的ignore文件只是帮我把idea中的三个文件加入到了忽略文件中。于是我修改了上面的.ignore文件。

/.idea/libraries
/.idea/modules.xml
/.idea/workspace.xml

改为了

/.idea

然后才进行了后面的操作,所以git status 一定要经常用,实时产看我们项目中文件的状态。

我们再次打开我们的github中newApp的项目会看到,在Branch master这里点击一下可以看到我们刚才提交的同步的develop分支。

好了这篇github进行版本管理就先到这里,下一篇不出意外应该会写《Git分支管理模型》,和大家分享一下实战项目中的分支管理(当然主要还是站在了前人的肩膀上,看了下一篇你就明白了!)

四、写在最后

写完这文章,才知道。很多东西,很难做到不分大小的面面俱到。无论是我自以为可以忽略而故意忽略的地方,还是完全没有想到而无意之下就忽略的地方。在文中应该都会有出现,如果大家有什么问题,可以评论也可以在公众号后台留言。望大家见谅。

最后大家可能会发现你们的主题和我的主题不太一样,我用了一个Aandroid Studio 的插件Material Theme UI ,另外选择了AndroidStudio的黑色主题,所以看起来和你们的不太一样!

如果你喜欢可以在公众号后台回复「Settings」,就可以获得我的AndroidStudio的Settings 。我已经将我的Settings导出来了,里面还有很多我们常用到的很好用的插件(可能在(4)到时候会专门讲一讲这些插件)。

拿到jar包后,按照File-> Import Settings即可导入了

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/14355.html

相关文章

  • Do.021」一文了解AndroidStudio3.4的全部更新

    摘要:而且是持续的关注。配置主要可以针对项目中每个的和三块儿内容进行了配置。默认启动在一步中集成了脱糖,压缩,混淆,优化和转文件,从而显着提高了构建性能。是在插件中引入的,现在为使用插件及更高版本的应用和库项目默认启用。 showImg(https://segmentfault.com/img/remote/1460000018969196); 首发公众号:Android程序员日记作者:贤榆...

    A Loity 评论0 收藏0
  • Do.016」AndroidStudio不用编译,阅读Android源码

    摘要:不过在尝试了很多次之后,我也完美的搭好了阅读源码的环境。下面我就告诉大家如何做到不用编译就能导入阅读源码。当然你也可以不同步直接使用来检出里面的源码项目。那么在这里之所以不用编译,不是真的无需编译。 showImg(https://segmentfault.com/img/remote/1460000016830248); 首发公众号:Android程序员日记作者:贤榆的榆如果你觉得有...

    flyer_dev 评论0 收藏0
  • Do.014」Android 实战项目(5)—— gradle 配置release与debug环境

    摘要:当时觉得很省事儿的就是,这些东西以及签名的和密码也都可以直接在中进行配置。切换为目录结构。如图根目录下创建一个的文件并在该文件中配置提到上文的等信息以及我们会用的依赖信息。 showImg(https://segmentfault.com/img/remote/1460000016676153); 首发公众号:Android程序员日记作者:贤榆的榆如果你觉得有帮助欢迎关注、赞赏、转发阅...

    helloworldcoding 评论0 收藏0
  • Do.009」Android 实战项目(4)——AndroidStudio插件推荐(磨刀)

    摘要:但是用这个插件会更加的轻便。当然了,对于很多个人开发者而言,这个平台也成了他们的正式发布平台。接下来我们应该就会真正开始搞项目了,激不激动。那么下一篇文章的可能性,是关于通过配置和环境分离的内容。 showImg(https://segmentfault.com/img/remote/1460000015969036?w=1920&h=1080); 首发公众号:Android程序员日记...

    Ververica 评论0 收藏0
  • Do.009」Android 实战项目(4)——AndroidStudio插件推荐(磨刀)

    摘要:但是用这个插件会更加的轻便。当然了,对于很多个人开发者而言,这个平台也成了他们的正式发布平台。接下来我们应该就会真正开始搞项目了,激不激动。那么下一篇文章的可能性,是关于通过配置和环境分离的内容。 showImg(https://segmentfault.com/img/remote/1460000015969036?w=1920&h=1080); 首发公众号:Android程序员日记...

    fish 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<