git工具
1.概念:
Git是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Git是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理,通过Git仓库来存储和管理这些文件
Git仓库分为两种:
本地仓库:开发人员自己电脑上的Git仓库
远程仓库:远程服务器上的Git
功能:1.代码回溯,2.版本切换,3.多人协作,4.远程备份
版本库:前面看到的.git隐藏文件夹就是版本库(本地仓库),版本库中存储了很多配置信息,日志信息和文件版本信息等

工作区:包含.git文件夹的目录就是工作区,也称工作目录,主要用于存放开发的代码

暂存区:.git文件夹中有很多文件,其中有一个index文件就是暂存区,也可以叫做stage。暂存区是一个临时保存修改文件的地方

2.Git工作流程图:

命令如下:
1 | 1. clone(克隆): 从远程仓库中克隆代码到本地仓库 |
3.Git的安装:
1 | 链接:https://pan.baidu.com/s/1LSqwv-rRrzpGIYFabJD1zA |
4.Git的一般配置:
备注:
Git GUI:Git提供的图形界面工具
Git Bash:Git提供的命令行工具
当安装Git后首先要做的事情是设置用户名称和email地址。这是非常重要的,因为每次Git提交都会使用
该用户信息
基本配置:
打开Git Bash
设置用户信息:
1
2git config --global user.name "用户名"
git config --global user.email "邮箱地址"查看配置信息:
1
2git config --global user.name
git config --global user.email不设置报错
为常用指令配置别名(可选)
打开gitBash,执行
1
touch ~/.bashrc
在C:\Users\user下打开文件 .bashrc,输入如下内容:
1
2
3
4#用于输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
#用于输出当前目录所有文件及基本信息
alias ll='ls -al'打开gitBash,执行
1
source ~/.bashrc
解决GitBash乱码问题
打开GitBash执行下面命令
1
git config --global core.quotepath false
在git安装目录下 /ect/bash.bashrc 文件最后加入下面两行
1
2export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"
5.获取本地仓库:
要使用Git对我们的代码进行版本控制,首先需要获得本地仓库
在电脑的任意位置创建一个空目录(例如test)作为我们的本地Git仓库
进入这个目录中,点击右键打开Git bash窗口
执行命令
1
git init
如果创建成功后可在文件夹下看到隐藏的**.git目录**。
6.基本操作命令:
Git工作目录下对于文件的修改(增加、删除、更新)会存在几个状态,这些修改的状态会随着我们执行Git的命令而发生变化。
Git工作区中的文件存在两种状态:
- untracked(未跟踪):未被纳入版本控制
- tracked(已跟踪):被纳入版本控制
已跟踪的文件存在三种状态:1.Unmodified未修改状态,2.Modified已修改状态,3.Staged已暂存状态

使用命令来控制这些状态之间的转换,其他操作
命令 说明 git status 查看的文件修改的状态(暂存区、工作区) git add 工作区 –> 暂存区 git reset 将暂存区的文件取消暂存或者是切换到指定版本 git commit 暂存区 –> 本地仓库 git log 查看日志 git reflog 查看已经删除的记录 1
2
3
4//1.添加单个文件到暂存区
git add 单个文件名+后缀
//2.将所有修改文件添加到暂存区
git add .1
git commit -m "注释内容" //提交暂存区内容到本地仓库的当前分支
1
git commit -m "注释内容" hello.txt //提交指定文件
1
git log //查看提交记录
1
git reset hello.txt //取消暂存
1
git reset --hard commitID //commitID 可以使用 git-log 或 git log 指令查看
git log 参数
参数 说明 all 显示所有分支 pretty=oneline 将提交信息显示为一行 abbrev-commit 使得输出的commitId更简短 graph 以图的形式显示
7.远程仓库操作命令:
| 命令 | 说明 |
|---|---|
| git remote | 查看远程仓库 |
| git remote add <远端名称> <仓库路径> | 添加远程仓库,远端名称:默认是origin |
| git clone <仓库路径> [本地目录] | 从远程仓库克隆 |
| git fetch [remote name] [branch name] | 从远程仓库抓取,将仓库里的更新都抓取到本地,不会进行合并 |
| git pull [remote name] [branch name] | 从远程仓库拉取,将远端仓库的修改拉到本地并自动进行合并 |
| git push <远端名称> <本地分支名> | 推送到远程仓库 |
| git branch -vv | 查看本地分支和远程分支的对应关系 |
1 | git remote //查看远端名称 |
1 | git remote -v //查看远端名称,url,等 |
1 | git remote add origin git.com:blue-fantasy/git_test.git //建立连接 |
1 | git clone git.com:blue-fantasy/git_test.git [本地目录] |
1 | //克隆指定分支的代码到当前目录 |
1 | git push origin master //origin:本地分支,master远端分支 |
1 | git push -f origin master //-f 表示强制覆盖 |
1 | git push --set-upstream origin master:master //--set-upstream:推送到远端的同时并且建立起和远端分支的关联关系 |
1 | git push //当前分支已经和远端分支关联 |
8.分支命令:
几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离
开来进行重大的Bug修改、开发新的功能,以免影响开发主线。
分支命令:
命令 说明 git branch 查看本地分支 git branch [ name ] 创建本地分支 git branch -d [ name ] 删除分支时,需要做各种检查(不能删除当前分支,只能删除其他分支) git branch -D [ name ] 不做任何检查,强制删除 (不能删除当前分支,只能删除其他分支) git checkout [ name ] 切换分支 git checkout -b [ name ] 创建并切换分支 git push [ shortName ] [ name ] 推送至远程仓库分支 git merge [ name ] 合并分支,将其他分支合并到当前分支 1
9.解决冲突:
当两个分支上对文件的修改可能会存在冲突,例如同时修改了同一个文件的同一行,这时就需要手动解
决冲突,解决冲突步骤如下:
- 处理文件中冲突的地方
- 将解决完冲突的文件加入暂存区(add)
- 提交到仓库(commit)
冲突部分的内容处理如下所示:

10.开发中分支使用原则与流程:
几乎所有的版本控制系统都以某种形式支持分支。 使用分支意味着你可以把你的工作从开发主线上分离
开来进行重大的Bug修改、开发新的功能,以免影响开发主线
在开发中,一般有如下分支使用原则与流程:
master (生产) 分支
线上分支,主分支,中小规模项目作为线上运行的应用对应的分支;
develop(开发)分支
是从master创建的分支,一般作为开发部门的主要开发分支,如果没有其他并行开发不同期上线
要求,都可以在此版本进行开发,阶段开发完成后,需要是合并到master分支,准备上线。
feature/xxxx分支
从develop创建的分支,一般是同期并行开发,但不同期上线时创建的分支,分支上的研发任务完
成后合并到develop分支
hotfifix/xxxx分支
从master派生的分支,一般作为线上bug修复使用,修复完成后需要合并到master、test、
develop分支
还有一些其他分支,在此不再详述,例如test分支(用于代码测试)、pre分支(预上线分支)等
等。
11.标签操作命令:
Git中的标签,指的是某个分支某个特定时间点的状态(快照),通过标签,可以很方便的切换到标记时的状态
操作命令:
命令 说明 git tag 列出已有的标签 git tag [ name ] 创建标签 git push [ shortName ] [ name ] 将标签推送至远程仓库 git checkout -b [ branch ] [ name ] 检出标签
12.常用的托管服务:
前面我们已经知道了Git中存在两种类型的仓库,即本地仓库和远程仓库。那么我们如何搭建Git远程仓库
呢?我们可以借助互联网上提供的一些代码托管服务来实现,其中比较常用的有GitHub、码云、GitLab等。
gitHub( 地址:https://github.com/ )是一个面向开源及私有软件项目的托管平台,因为只支持
Git 作为唯一的版本库格式进行托管,故名gitHub
码云(地址: https://gitee.com/ )是国内的一个代码托管平台,由于服务器在国内,所以相比于
GitHub,码云速度会更快
GitLab (地址: https://about.gitlab.com/ )是一个用于仓库管理系统的开源项目,使用Git作
为代码管理工具,并在此基础上搭建起来的web服务,一般用于在企业、学校等内部网络搭建git私服。
13.配置SSH公钥:
生成SSH公钥-步骤:
ssh-keygen -t rsa1
2
3
4
5
6
7
8
9
- 不断回车,如果公钥已经存在,则自动覆盖
- Gitee设置账户共公钥
- 获取公钥
```java
cat ~/.ssh/id_rsa.pub
验证是否配置成功
1
ssh -T git.com
14.在Idea中操作Git:
场景:本地已经有一个项目,但是并不是git项目,我们需要将这个放到码云的仓库里,和其他开发人员
继续一起协作开发
初始化本地仓库,将此项目设置为本地仓库

设置远程仓库1.Name:远程仓库的名称,2.URL:远程仓库的地址

关闭代码检查:

推送到远程仓库,1.master本地仓库分支,2.dev远程仓库名称,3.development远程仓库分支

克隆远程仓库到本地,上方Git——>clone

查看或是设置分支:

推送当前分支到远程仓库:

切换成其他分支:

合并选中的其他分支到当前分支:
