前言
Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等)。Git在管理文件过程中会记录日志,方便回退到历史版本;Git存在分支的概念,一个项目可以有多个分支(版本),可以任意切换;Git支持多人协作,即一个团队共同开发一个项目,每个团队成员负责一部分代码,通过Git就可以管理和协调;Git通过仓库管理文件,在Git中存在远程仓库,如果本地文件丢失还可以从远程仓库获取。
通过Git 仓库来存储和管理这些文件,Git 仓库分为两种:
本地仓库:开发人员自己电脑上的 Git 仓库
远程仓库:远程服务器上的 Git 仓库
Git下载与安装
下载地址: https://git-scm.com/download
直接双击完成安装即可,安装完成后可以在任意目录下点击鼠标右键,如果能够看到如下菜单则说明安装成功:
Git GUI Here是打开Git 图形界面,一般不怎么使用。Git Bash Here是打开Git 命令行的。
Git代码托管服务
Git远程仓库可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。
gitHub:https://github.com/ ,一个面向开源及私有软件项目的托管平台,因为只支持Git 作为唯一的版本库格式进行托管,故名gitHub(网站在国外,访问速度很慢)
码云:https://gitee.com/ ,国内的一个代码托管平台,由于服务器在国内,所以相比于GitHub,码云速度会更快(推荐)。
使用码云的操作流程如下:
注册码云账号
登录码云
创建远程仓库
邀请其他用户成为仓库成员(自己学习则可以忽略这一步),同仓库的成员可以pull 和push
Git常用命令
当安装Git后要设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用该用户信息。在Git 命令行中执行下面命令:
设置用户信息
git config --global user.name "xxxxx"
git config --global user.email "xxxx@xxx.xxx"
user.name和user.email并不是我们在注册码云账号时使用的用户名和邮箱,此处可以任意设置
查看配置信息
git config --list
要使用Git对我们的代码进行管理,首先需要获得Git仓库。
获取Git仓库通常有两种方式:
在本地初始化Git仓库(不常用)
在任意目录下创建一个空目录作为我们的本地Git仓库
进入这个目录中,点击右键打开Git bash窗口
执行命令git init
如果在当前目录中看到.git文件夹(此文件夹为隐藏文件夹)则说明Git仓库创建成功
从远程仓库克隆(常用)
可以通过Git提供的命令从远程仓库进行克隆,将远程仓库克隆到本地
命令格式:git clone 远程仓库地址
本地仓库常用命令
git status 查看文件状态(untracked 未跟踪(未被纳入版本控制)、Unmodified 未修改状态、Modified 已修改状态、Staged 已暂存状态)
git add 将文件的修改加入暂存区(命令格式:git add 文件名)
git reset 将暂存区的文件取消暂存或者是切换到指定版本(取消暂存命令格式:git reset 文件名;切换到指定版本命令格式:git reset --hard 版本号)
git commit 将暂存区的文件修改提交到版本库(命令格式:git commit -m 自己写的日志备注 文件名)【-m:代表message,每次提交时需要设置,会记录到日志中可以使用通配符*一次提交多个文件
】
git log 查看日志
远程仓库操作
git remote 查看远程仓库(后面添加-v参数查看远程仓库更加详细的信息)
git remote add 添加远程仓库(命令格式:git remote add 简称 远程仓库地址)
git clone 从远程仓库克隆(克隆仓库的命令格式: git clone 远程仓库地址)【Git 克隆的是该 Git 仓库服务器上的几乎所有数据(包括日志信息、历史记录等)】
git push(将本地仓库内容推送到远程仓库,命令格式:git push 远程仓库简称 分支名称)【如果是第一次操作,需要进行身份认证,用户名和密码对应的就是我们在码云上注册的用户名和密码】【一个仓库可以有多个分支,默认情况下在创建仓库后会自动创建一个master分支】
git pull从远程仓库获取最新版本并合并到本地仓库(命令格式:git pull 远程仓库简称 分支名称)
注意:如果当前本地仓库不是从远程仓库克隆,而是本地创建的仓库,并且仓库中存在文件,此时再从远程仓库拉取文件的时候会报错,解决此问题可以在git pull命令后加入参数--allow-unrelated-histories.
分支操作
分支是Git 使用过程中非常重要的概念。使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。本地仓库和远程仓库中都有分支,同一个仓库可以有多个分支,各个分支相互独立,互不干扰。通过git init 命令创建本地仓库时默认会创建一个master分支。
git branch 查看分支【
git branch 列出所有本地分支
git branch -r 列出所有远程分支
git branch -a 列出所有本地分支和远程分支
】
git branch [name] 创建分支【命令格式:git branch 分支名称】
git checkout [name] 切换分支【命令格式:git checkout 分支名称】(在命令行中会显示出当前所在分支)
git push [shortName][name] 推送至远程仓库分支【命令格式:git push 远程仓库简称 分支命令】
git merge [name] 合并分支【命令格式:git merge 分支命令】
分支合并时需注意合并的方向,例如在Master分支执行操作,结果就是将另一分支合并到Master分支。
标签操作
Git 中的标签,指的是某个分支某个特定时间点的状态。通过标签,可以很方便的切换到标记时的状态。
比较有代表性的是会使用这个功能来标记发布结点(v1.0 、v1.2等)。
git tag 查看标签
git tag [name] 创建标签【命令:git tag 标签名】
git push shortName 将标签推送至远程仓库【命令:git push 远程仓库简称 标签名】
git checkout -b branch 检出标签【检出标签时需要新建一个分支来指向某个标签,检出标签的命令格式:git checkout -b 分支名 标签名】
在IDEA中使用Git
在IEDA中配置Git,配置好后就可以在IDEA中通过图形化的方式来操作Git。
在IDEA中使用Git,本质上还是使用的本地安装的Git软件,所以需要提前安装好Git并在IDEA中配置Git。如果Git安装在默认目录中(C:\Program Files\Git),则IDEA中无需再手动配置,直接就可以使用。
在IDEA开始窗口中点击【Get from Version Control】,然后在弹出的【Get from Version Control】窗口中输入远程仓库的URL地址和对应的本地仓库存放目录,点击【Clone】按钮进行仓库克隆操作。
在Git工作区中有一个特殊的文件 .gitignore,通过此文件可以指定工作区中的哪些文件不需要Git管理。我们在使用Git管理项目代码时,并不是所有文件都需要Git管理,例如Java项目中编译的.class文件、开发工具自带的配置文件等,这些文件没有必要交给Git管理,所以也就不需要提交到Git版本库中。注意忽略文件的名称是固定的,不能修改。添加到忽略列表中的文件后续Git工具就会忽略它
IDEA右上角:
查看日志:右击(项目名称上右击则查看整个项目日志,某个文件上右击则查看某个文件日志):
一个本地仓库可以配置多个远程仓库,在【Git Remotes】窗口中点击【+】来添加一个新的远程仓库:
IDEA右下角:
在【Git Branches】分支窗口中点击【New Branch】可以创建一个分支。
关于切换分支,在某个分支上可以点击出来提示框,上面有Checkout的选项,然后将分支推送到远程仓库和进行分支的合并都是可以操作的,逻辑与之前命令方式一样,在IDEA中图形化操作更加简便。