首先,在现代软件开发项目中,要成为一个有效的软件开发人员,我们必须能够与其他项目贡献者并行进行开发。源代码管理系统已经不是什么新思想了,为了编写一些能够更快速、简单地开发以后软件项目的软件,所有的开发团队都已经进行了很多尝试。最终得到了一个含有版本控制的项目管理系统,他可以对源代码的修改进行回滚,可以对比代码的优劣,也可以简单地追踪哪些人修改了那些内容,可以解决解决多个开发人员试图对同一文件进行修改可能出现的冲突问题,可以防止用户修改文件覆盖了其他人的修改等等。
1. 为什么要用Git
如上所述,企业开发需要解决以下问题
- 某功能做出来不尽人意,我想要把这功能去掉,但我改了太多的代码,具体改了哪些我已经记不得了(代码回滚)
- 我用某设计模式优化了某部分的代码,但设计模式的引入,到底有没有让代码更清晰呢?(版本控制,代码对比)
- 每天早上来公司更新同步团队的源代码,总是报错,我昨天下班明明没问题的(代码追踪,看看是谁老是写bug;代码冲突,昨天下班前做好代码合并工作)
简单来说,Git能帮团队解决这些问题,Git定位就是一个快速、可扩展的分布式版本控制系统,它具有极为丰富的命令集,对内部系统提供了高级操作和完全访问。
那除了Git还有其他版本控制系统吗?有,像CVS、Subversion都是版本控制系统,那为什么要选Git呢?
- 分支更快、更容易
- 支持离线工作,你可以先提交到本地,然后下班时一并提交到服务器上
- Git提交都是原子的,且整个项目范围内,而其他的一般是基于每个文件的
- Git中的每个工作树都包含一个完整项目历史的仓库
2. 什么是GitHub
GitHub是通过Git进行版本控制的软件源代码托管服务平台。这时GitHub最初的定义,但自2007年开发,到2008年上线至今,这已经不是个简单的代码的托管平台了,它更像是技术人员的社交平台,除了代码管理,你还可以在这里写博客,参与其他项目的开发,给其他项目提建议,甚至还有发布交友、交易信息的。
3. 安装git
我的是Mac电脑,直接用用Homebrew包管理器安装,如果你没有Homebrew你可以在终端输入下面的命令,自动安装最新版本的Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
安装好Homebrew后,输入下面的命令开始安装git,安装之前Homebrew会先自动更新一下,然后再开始安装git,如果你要跳过就输入一次Control+C跳过更新,记住是一次,输入多了就跳过git的下载与安装了
brew install git
安装好后会有下面的信息,然后输入git version看一下版本信息

4. 注册GitHub
注册其实挺简单的,就输入名字、邮箱、密码就可以了,需要注意的是GitHub虽然国内可以访问,但是在注册的时候有些东西可能加载不出来,建议还是整个科学上网。提交信息后会让你选择是用免费的还是收费的,个人开发使用就用个免费的就行了。然后还会问些你的基本情况,比如开发经验、GitHub使用的目的以及感兴趣的语言、框架等。选好后GitHub会给你发个验证的邮件,打开邮件确认验证就可以开始GitHub的使用了
5. Git的使用
5.1 创建仓库
首先我们在GitHub上创建一个仓库(Repositories)

然后输入相关信息,我现在这个仓库是用来存放我这次Java学习的代码的,所以就叫JavaAgain

点击Create后仓库就建好了,这里关于我选了MIT开源协议,我给大家小科普一下主流的三大开源协议:MIT、Apache、GPL。

5.2 拉取项目
既然仓库建好了,那么我们就把仓库里的东西拉取下来,这里我先用命令行的方式
先获取仓库地址

然后打开终端

然后我们的项目就拉取下来了,现在我把之前做的demo01的项目复制到JavaAgain里面,然后把代码提交到远端
我们先尝试提交到本地
# 先将修改内容添加进去到缓存区
git add demo01
# 将缓存区的代码提交到本地Git
git commit
这时,会弹出文件编辑模式,让你填写一注释,也就是你这次提交了什么内容你需要描述一下,这个是一个必填内容,不然没法提交上去

填写完后,我得到了如下的提示信息

什么意思呢,就是说这个我这身份信息都还没录入,那么现在我们再把个人信息配置一下
# 设置用户名
git config --global user.name "MagicH666"
# 设置邮箱地址
git config --global user.email "hellomagich@gmail.com"
配置好后,我再次git commit就会提示我

意思是我已经没有什么可以commit的了,并且我本地的代码已经领先了我仓库的代码了,然后我现在把他推到仓库去
git push
然后他会提示输入账户名和密码,输入后正常提交到远端仓库(账户密码输入过一次后就不用再输入了)
然后我就可以回到GitHub,可以看到代码已经正常提交了
