本篇文章建立在大家已经用过svn,但是还未接触git的基础上,通过这篇文章你可以了解到两个版本管理系统的区别,原理,和具体操作。
svn和git的区别
svn是集中式版本管理系统,git是分布式版本管理系统;
简单来说,svn大家都需要联网,连接到远程库,然后进行代码的拉取和提交;
而git会有两种仓库,一个是远程库(主版本库),一个是本地库,远程库和本地库功能是一样的,都可以进行版本控制,当你没有联网的时候,可以进行提交操作,将代码实时更新到本地库,生成历史版本。当你联上网之后,再将代码push到远程库当中。
git工作机制
当你进行团队协作的时候,整个过程会涉及到四块操作区域。工作区,暂存区,本地库和远程库。
1、工作区,当你使用IDEA或者Eclipse等IDE进行code的时候,你代码存放的工作空间(即你本地磁盘位置)就是你的工作区。
2、暂存区,当你的代码写完了,想要提交,先要做add操作,命令是“git add”,将代码add到暂存区,这是一个中间区域,这时候还没有产生历史版本。
***** 工作区和暂存区都可以进行删除,当你删除别人也看不到你的历史记录。
3、本地库,当你将代码add到暂存区之后,就可以将代码提交到本地库了,命令是“git commit”,这时候就会产生一个历史版本。你可以随时查看,进行版本回退等操作,在不出现物理性故障的情况下,代码是不会丢失的。
4、远程库,当你将代码提交到本地库之后,想让别人获取到你的代码,这时候你就需要进行代码推送,推送到远程库当中,命令是“git push”,推送操作会将你本地所有提交的历史版本都推送到远程库,所有人都看得到。
具体工作机制流程如下图:
git安装
官网地址:https://git-scm.com/
1、打开官网就可以看到,当前git最新版本,直接点击下载即可
2、下载完成之后,直接点击运行安装即可,其中有一个配置可以参考下图,其他一直下一步就可以
git命令行使用
安装好git之后,我们在任意磁盘位置下,鼠标点击右键,就会出现两个选项:Git GUI Here和Git Bash Here。点击Git Bash Here就可以进入git命令行。在这里面使用的一些命令除了git相关的,其他的和linux命令一样。
git相关常用命令
下面两条命令设置用户签名,这个在使用git管理项目之前必须要设置的,用于区分操作者。
git config --global user.name 【用户名】— 设置用户名
git config --global user.email 【邮箱地址】— 设置邮箱地址
git init — 初始化本地库
git status — 查看本地库状态
git add 【文件名】 — 将文件添加到暂存区
git commit -m “日志信息” 【文件名】— 将文件提交到本地库
git reflog — 查看历史记录
git reset --hard 【版本号】—版本回退(版本穿梭)
命令行操作git命令就不做过多演示了,平时开发主要还是在IDE中使用git比较多。
配置git忽略文件
在使用之前,我们还需要做一步设置,配置git忽略文件,忽略的这些文件包括.iml,.idea等等,这些文件与实际功能无关,也不参与项目的运行,建议配置。
首先,git是有一个配置文件的,当我们通过git命令设置好用户签名之后,在默认路径C:/Users/xxx/目录下,有一个.gitconfig文件,打开我们可以看到我们设置好的user.name和user.email。
我们在这个同目录下,新建一个git.ignore文件,然后编辑,加上以下内容。
<git.ignore>
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java(J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see http://www.java.com/cn/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml
写好这个文件之后,回到刚才那个.gitconfig文件中,添加以下内容
[core]
excludesfile = C:/Users/xxx/git.ignore # 这里面的xxx是你的用户目录
在IDEA中配置git
点击file -> settings -> Version Control,在path to git excutable添加git.exe文件
当git配置好之后,使用git非常简单,右键文件或者项目目录就可以找到一个git的选项,所有git的命令都可以直接点击使用
如果你发现你的项目右键没有git选项,说明你的项目并没有被git所管理,这时候需要点击 VCS -> Create Git Repository,然后弹出目录,直接点击确定即可
这样创建之后,你可以打开你项目位置,在项目里面会发现一个.git的目录,你在idea中右键项目目录或者文件也会出现git了。
在idea中,被git管理的项目中的文件有可能会显示为几种颜色:
红色:git检测到有新文件,但是没有被加到暂存区,这时候是不能提交的,需要先做git add的操作。
蓝色:该文件有修改,没有被提交,需要做git commit的操作
白色:这表示该文件与本地库文件一致,没有改动。
切换版本
点击左下角git -> log 可以发现当前版本和历史版本,每一个提交记录都是一个历史版本,选择任意一个历史版本,右键选择checkout revision 【xxxxx】即可,就会发现你的代码回到了那个历史版本
分支操作
创建分支
1、选择项目右键,Git -> Branch -> +Create Branch或者有的会直接在Git -> new Branch选项(新版本的IDEA会有这个选项)
2、右下角点击当前分支名称,弹出的框也会有New Branch 创建分支的选项
切换分支
点击右下角当前分支,然后点击其他的分支,选择“check out”即可完成分支切换
分支合并
将其他分支合并到当前分支,点击右下角当前分支,然后点击其他的分支,选择“Merge into Current”即可完成分支切换
分支合并(冲突)
当其他分支合并到当前分支,按照上面的操作进行合并时,如果发生冲突,IDEA会提示发生冲突(conflicts)。然后点击Merge进行手动合并,点击Merge之后,会出现包含三部分的窗口,第一部分是当前分支的内容,第二部分是合并之后的内容(默认是还没有合并的),第三部分是要合并的内容。