本章节学习目标:
本章节学习目标:
同生活中的许多伟大事件一样,Git 诞生于一个极富纷争大举创新的年代。Linux 内核开源项目有着为数众广的参与者。绝大多数的 Linux 内核维护工作都花在了提交补丁和保存归档的繁琐事务上(1991-2002年间)。到 2002 年,整个项目组开始启用分布式版本控制系统 BitKeeper 来管理和维护代码。
到 2005 年的时候,开发 BitKeeper 的商业公司同 Linux 内核开源社区的合作关系结束,他们收回了免费使用 BitKeeper 的权力。这就迫使 Linux 开源社区(特别是 Linux的缔造者 Linus Torvalds )不得不吸取教训,只有开发一套属于自己的版本控制系统才不至于重蹈覆辙。他们对新的系统订了若干目标:
SVN是集中式版本控制系统,版本库是集中放在中央服务器的,而编写代码的时候,用的都是自己的电脑,所以首先要从中央服务器哪里得到最新版本的代码,然后编写代码,完成后需要把自己的代码推送到中央服务器。
集中式版本控制系统是必须联网才能工作,如果在局域网还可以,带宽够大,速度够快,如果在互联网下,如果网速慢的话,就会非常影响工作效率。
Git是分布式版本控制系统,它没有中央服务器,每个人的电脑就是一个完整的版本库。这样,工作的时候就不需要联网了,因为版本都是在自己的电脑上。既然每个人的电脑都有一个完整的版本库,那多个人如何协作呢?比如说自己在电脑上改了文件A,其他人也在电脑上改了文件A,这时,你们两之间只需把各自的修改推送给对方,就可以互相看到对方的修改了。
svn:是个集中式的版本控制系统。有个中心点(svn服务器),每个客户端都对中心点有强依赖。
一旦svn服务器出错,所有人都不能再进行版本控制了
每个人都必须要联网,连接上svn服务器才可以进行版本控制
git:是个分布式的版本控制系统。没有中心点,每个人都可以独立进行版本控制
即使没有联网,每个人也可以进行版本控制
最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上运行。后来也把git移植到了Windows上。现在,Git可以在Linux、Unix、Mac和Windows这几大平台上正常运行。由于开发机大多数情况都是windows,所以这里只讲解windows下的git的安装及使用。
下载地址:https://git-scm.com/download
安装语言包:直接双击即可安装语言包
安装完成之后,需要重启电脑
本章节学习目标:
本章节学习目标:
在开发过程中可能会经常查看代码的修改历史,或者叫做修改日志。来查看某个版本是谁修改的,什么时间修改的,修改了哪些内容。
可以在文件上或空白处点击右键选择“显示日志”来查看文件的修改历史。
假如写了很多代码后发现方向错误,要恢复到以前的版本,可以分两种情况进行恢复:
如果文件修改后还没有提交,可以直接还原。
例如我们又修改了pom.xml,但是还没有提交。在文件上右键直接还原
如果某些文件没用了,需要删除掉。这时可以
本章节学习目标:
现在我们已经在本地创建了一个Git仓库。假如又需要让其他人来协作开发,就可以把本地仓库同步到远程仓库,同时还增加了本地仓库的一个备份。
常用的远程仓库就是github:https://github.com/,或者码云 https://gitee.com (国内版本的GitHub)
接下来我们演示如何将本地代码同步到码云gitee。gitee和GitHub的操作一模一样
要求每个人都注册一个gitee帐号
通常是一个项目,要创建一个仓库
本章节学习目标:
创建gitee仓库后,如果我们要把自己本地仓库的代码推送到gitee远程仓库,就需要提供gitee身份验证信息、加密信息。gitee支持两种代码同步方式:https和ssh。
https方式:每次把本地仓库代码推送到远程仓库,都需要输入自己的gitee帐号和密码
ssh方式:每次把本地仓库代码推送到远程仓库时,不需要提供自己的gitee帐号和密码
但是需要我们生成一对密钥:公钥配置到gitee上,私钥自己保留
后续每次推送时,gitee都会验证公钥和私钥是否匹配。如果匹配,就可以推送
如果使用https很简单基本不需要配置就可以使用,但是每次提交代码和下载代码时都需要输入用户名和密码。而且如果是公司配置的私有git服务器一般不提供https方式访问,所以我们着重说明“ssh”方式。
SSH,全称是Secure Shell,是建立在应用层基础上的安全协议外壳。
最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。1995年,芬兰学者Tatu Ylonen设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
在windows下我们可以使用 Git Bash.exe来生成密钥,右键菜单打开Git Bash。
执行命令完成后,在C:\Users\用户名\.ssh
下面生成如下名称的公钥和私钥:
公钥:需要上传到gitee
初次从远程仓库里获取项目代码的过程,叫克隆。克隆后会创建一个新的本地仓库。选择一个任意文件夹,然后使用TortoiseGit克隆远程仓库。
如果其它人向远程仓库里推送了代码,我们需要从远程仓库获取最新代码。
拉取代码,如果没有冲突会拉取成功。如果有冲突会拉取失败
拉取后在所有冲突的文件上,会有感叹号图标。我们需要挨个解决所有的冲突
右键提交,在弹出的窗口里选择“提交”;然后推送到远程仓库
注意:建议使用idea2018.2(idea2019.2版本可能有问题)
说明:在idea里使用git,是基于project操作的。
在大型项目开发中,通常是一个项目要创建一个project,其中有很多Module;这多个Module共同组成一个完整的项目
注意:在做一切添加、提交、推送等操作之前,先设置忽略文件
可以在工程里手动创建.gitignore文件,编写要忽略的文件。也可以使用idea的.ignore
插件来辅助编写。
在父工程上右键,创建文件,名称为.gitignore
在.gitignore
文件中,增加target、.idea、*.iml三项
target/
*.iml
.idea/
略
.git
目录