一 、Git 版本控制工具
1. 软件安装
官网: Git - 安装 Git (git-scm.com)
下载地址: https://git-scm.com/download/win
2.设置用户名
设置用户名
git config --global user.name "XXX" # 设置用户名
git config --global user.email "xxx" # 设置邮箱
查看设置的用户名
git config --global user.name
git config --global user.email
3. 设置常用命令的别名
- 打开用户目录,创建.bashrc文件,可以使用命令窗口创建,命令如下:
touch ~/.bashrc
- 编辑文件内容
# 用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'
- 使用配置文件,让配置文件生效
source ~/.bashrc
二、基本使用
要使用Git对我们的代码进行版本控制,首先需要获得本地仓库
创建本地仓库
本地仓库可以是任何一个文件夹,都可以是一个本地仓库,可以对这个仓库的文件进行版本控制和内容管理
1. 初始化
直接在文件夹中打开Git命令管理时此时文件夹并不是一个本地仓库,需要对此文件夹进行初始化,在初始化之后,这个文件夹就变成了本地仓库,就可以使用命令进行管理和控制文件了
# 仓库初始化
git init
2. 基础操作命令
Git在工作目录下,对于文件的修改会存在下面几个状态,这些状态会随着Git的命令而发生变化
2.0 Git管理的仓库文件状态分类
- 当我们在仓库中创建一个文件的时候,此时文件为:未跟踪状态,这个状态下的文件不在本地仓库,不在Git所管理的范围中
- 当我们调用
git add
(需要选择哪些文件.
表示所有修改的文件)这个命令之后,这些文件会被放入到Git的暂存区 - 当我们调用
git commit
这个命令之后,被放入暂存区的文件会被提交到本地仓库,此时这些文件就会被git所管理,就可以进行版本控制了
2.1 查看当前仓库文件状态
# 这个命令可以查询到当前仓库的文件状态(暂存区 / 工作区 / 已提交)
git status
2.2 将文件从工作区添加到暂存区
# 这个命令会将指定文件名称的文件放入到暂存区
git add <文件名称>
# 这个命令会将所有的已修改的文件放入到暂存区
git add .
2.3 将文件从暂存区放入到本地仓库管理
# 这个命令会将在暂存区存储的文件放入到本地仓库
git commit -m "XXXX(这个地方是修改的日志)"
2.4 查看提交日志
- 若配置了别名,可以使用 git -log 就包含了下面这些参数
git log -all # 显示所有的分支
git log -pretty=oneline # 将提交的信息显示到一行
git log -abbrev-commit # 使得输出的commitId更简短
git log graph # 以图像形式显示
2.5 文件版本回退
# 这个命令会将仓库中的文件切换到指定的版本时候的样子
# CommitId可以使用log查看
git reset --hard <CommitId>
三、Git分支
分支可以有效的把当前模块的开发分离出来进行重大的BUG修改,或开发新的功能,以不影响开发的主线
1. 查看本地分支
# 查看当前本地仓库中的分支,每个仓库中的分支是独立的,互不影响
git branch
2. 创建本地分支
# 在当前本地仓库创建一个分支
git branch <分支的名称>
3. 切换分支
这个命令可以切换到指定的分子下,切换之后本地仓库文件会显示为当前分支的文件状态
git checkout <分支名称>
切换分支高级版:分支不存在创建 + 切换
git checkout -b <分支名称>
4. 合并分支
将指定分支的文件内容合并到当前分支
git merge <分支名称>
5. 删除分支
删除分支的时候不可以删除当前所在的分支,只可以删除别的分支
如:当前所在分支master,有另外分支dev1 那么我们可以在master分支删除dev1分支,若在dev1分支中是不可以删除dev1分支的
git branch -d <分支名称> # 删除分支时做检查
删除分支不做检查,直接删除
git branch -D <分支名称>
四、冲突解决
1. 冲突的发生
当两个分支上对同一个文件,的同一行进行修改,这时候就需要手动去解决冲突
2. 如何解决冲突
处理文件中冲突的地方
- 选择要保留的内容,或要删除的内容
- 将解决完冲突的文件加入到暂存区
- 提交到仓库
3. 开发中分支使用原则与流程
几乎所有的版本控制系统都以某种形式支持分支。
使用分支意味着你可以把你的工作从开发主线上分离开来进行重大的Bug修改、开发新的功能,以免影响开发主线。
在开发中,一般有如下分支使用原则与流程:
- master (生产) 分支:线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;
- develop(开发)分支:是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其 他并行开发不同期上线要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master 分支,准备上线。
- feature/xxxx分支:从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支, 分支上的研发任务完成后合并到develop分支,之后该分支可以删除。
- hotfix/xxxx分支:从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到 master、test、develop分支。 还有一些其他分支,在此不再详述,例如test分支(用于代码测试)、pre分支(预上线分支)等。
五、Git远程仓库
- GitHub( 地址:https://github.com/ )是一个面向开源及私有软件项目的托管平台,因为只支持 Git 作为唯一的版本库格式进行托管,故名GitHub
- 码云(地址: https://gitee.com/ )是国内的一个代码托管平台,由于服务器在国内,所以相比于 GitHub,码云速度会更快
- GitLab (地址: https://about.gitlab.com/ )是一个用于仓库管理系统的开源项目,使用Git作为 代码管理工具,并在此基础上搭建起来的web服务,一般用于在企业、学校等内部网络搭建git私 服。
以码云为例子
码云(地址: https://gitee.com/ )
1. 创建远程仓库
2. 远程仓库地址
3. 配置 / 生成本地公钥
在Git命令窗口中执行下面代码
ssh-keygen -t ed25519 -C "xxxxx@xxxxx.com"
其中xxxxx@xxxxx.com只是生成的 sshkey 的名称,并不约束或要求具体命名为某个邮箱。
现网的大部分教程均讲解的使用邮箱生成,其一开始的初衷仅仅是为了便于辨识所以使用了邮箱
按照提示完成三次回车,即可生成 ssh key。通过查看 ~/.ssh/id_ed25519.pub
文件内容,获取到你的 public key
cat ~/.ssh/id_ed25519.pub
4. 验证配置的公钥是否成功
ssh -T git@gitee.com
会提示输入Yes,直接输入yes,输出显示Git中配置的用户名即可算配置成功
六、远程仓库命令
0. 初始化远程仓库
要想连接到远程仓库,在远程仓库之前需要执行以下
- git init 将当前文件夹变为一个git仓库
git remote add <远程仓库名称一般是origin> <仓库地址SSH地址>
1. 查看远程仓库
# 查看当前远程仓库,如果返回一个 origin 那么绑定成功
git remote
2. 从远程仓库克隆项目
将远程仓库的项目克隆到本地,若不指定本地目录那么将会生成一个远程仓库一样的文件夹
git clone <仓库地址> [本地目录]
3. 拉取远程仓库
git fetch [远程仓库名称一般为origin] [分支名称不指定为所有分支]
上面这个命令可以简化为下面的一个命令
这个命令可以本地自动拉取和更新
git pull [远程仓库名称一般为origin] [分支名称不指定为所有分支]
4. 推送到远程仓库
将本地仓库的文件推送到远程仓库 master分支下
git push [origin] [master]
七、IDEA中使用Git
1. 配置Git
在IDEA中的设置,搜索Git,找到本机电脑上所装的Git.exe文件,即设置成功
出现对应的版本号就是配置成功了
2. 配置远程仓库
3. 配置本地仓库配置
有两个地方可以commit到本地仓库
在上面Git选择中commit或者点击这个 对号