第一章 Git概述
1.1 Git是什么
Git是一个免费的,开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
Git易于学习,占地面积小,性能极快,具有廉价的本地库,还有方便的暂存区域和多个工作流分支等特性。
官网地址:https://git-scm.com
1.2 什么是版本控制系统
版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
版本控制最重要的一点就是可以记录文件修改历史记录,用户可以查看历史版本,方便版本切换。
1.3 版本控制工具
CVS、SVN、VSS…
(1)集中式版本控制工具
集中化的版本控制系统都有一个单一的集中管理服务器,保存所有文件的修订版本,协同的工作人员都是通过客户端连接到这台服务器,取出最新的文件或者提交更新。管理员能够轻松掌控每个开发者的权限,开发人员也可以在一定程度上看到项目中的其他人正在做什么。管理一个集中化的版本控制系统,要远比在各个客户端上维护本地数据库来得轻松。
而集中式的版本控制系统的缺点就是中央服务器的单点故障。
(2)分布式版本控制工具
Git、Mercurial、Bazaar、Darcs…
像Git这种分布式的版本控制工具,客户端提取的不是最新版本的文件快照,而是把代码仓库完整低镜像下来(存储在本地库)。任何一处协同工作的文件发生故障,事后都可以用其他客户端的本地仓库进行恢复。每个客户端的每一次文件提取操作实际上都是一次对整个文件仓库的完整备份。
分布式版本控制工具相比于集中式版本控制工具的优点:
*服务器断网的情况也能开发。(因为版本控制在本地进行)
*每个客户端保存的都是完整的项目。(包含历史记录)
1.4 Git工作机制
1. 5Git和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般称为远程库。
(1)局域网
GitLab
(2)互联网
GitHub(外网)
Gitee码云(国内网站)
第二章 Git安装
1.官网地址:https://git-scm.com/
2.Git高速下载地址:https://npm.taobao.org/mirrors/git-for-windows/
3.安装步骤:
选择Git Bash Here打开
第三章 Git常用命令
命令名称 | 作用 |
---|---|
git config --global user.name 用户名 | 设置用户签名 |
git config --global user.emaill 名称 | 设置用户签名 |
git init | 初始化本地库 |
git statusl | 查看本地库状态 |
git add 文件名 | 添加到暂存区 |
git commit -m “日志信息” 文件名 | 提交到本地库 |
git reflog | 查看历史记录 |
git reset 版本号 | 版本穿梭 |
注:Git里的一些命令和Linux命令是通用的。
3.1 设置用户签名
(1)语法:
git config --global user.name 用户名
git config --global user.emaill 名称
(2)如何查看是否配置成功:
C盘 —> 找到Git客户端所对应的用户 —> 查看 .gitconfig 配置文件
(3)签名的作用是区分不同操作者身份。用户的签名信息在每一个版本的提交信息中能够看到,以此确认本次提交来自谁。Git首次安装必须设置用户签名,否则无法提交代码。
(4)这里所设置的用户签名和将来登录GitHub(或者其他代码托管中心)的账号没有任何关系。
3.2 初始化本地库
(1)语法:
git init
(2)在本地磁盘下新建一个目录,通过Git Bash Here进入客户端,初始化以后会生成 .git 目录(.git 目录在Windows里面默认隐藏,通过查看 —> 勾选隐藏的项目后可以看到)
3.3 查看本地库状态
(1)语法:
git status
3.4 文件(hello.txt)新建、添加、上传
(1)新建文件:
vim hello.txt
(2)查看文件:
cat hello.txt
head -n 5 hello.txt
tail -n 3 hello.txt
(3)将文件添加到暂存区:
git add hello.txt
(4)将文件从暂存区删除:
git rm -cached hello.txt
(5)将文件提交到本地库:
git commit -m “first commit” hello.txt
注:-m " xxxx "参数可以添加日志信息
(6)查看版本信息
git reflog
(7)查看版本详细信息:
git log
(8)文件修改过后,需要重新添加到暂存区,再上传到本地库。
3.5 版本穿梭
(1)语法:
git reset --hard 版本号
git reset 版本号
(2)Git切换版本,底层其实移动的是Head指针。
第四章 Git分支操作
4.1 什么是分支
在版本控制过程中,如果同时推进多个任务,就可以为每个任务创建单独的分支。使用分支意味着查询员可以把自己的工作从主线上分离开来,开发自己分支的时候,不影响主线分支的运行。(分支可以简单理解为副本,一个分支就是一个单独的副本。)
4.2 分支的好处
(1)同时并行推进多个功能的开发,提高开发效率
(2)各个分支在开发过程中互不影响
4.3 分支的操作
命令名称 | 作用 |
---|---|
git branch 分支名 | 创建分支 |
git branch -v | 查看分支 |
git checkout 分支名 | 切换分支 |
git merge 分支名 | 把指定的分支合并到当前分支上 |
4.3.1 查看分支
git branch 分支名
4.3.2 创建分支
git branch hot-fix
4.3.3 切换分支
git checkout hot-fix
4.3.4 合并分支
git merge hot-fix
4.3.5 解决合并分支时的冲突问题
(1)手动更改存在冲突的文件
(2)将更改后的文件提交到暂存区
(3)执行提交(注意:此时 git commit 命令不能带文件名)
4.4 分支操作的底层逻辑
创建分支的本质就是多创建一个指针。当前指针指向哪个分支,就对哪个分支进行操作。
第五章 Git团队协作机制
5.1 团队内协作
5.2 跨团队协作
第六章 GitHub操作
6.1 官网地址
6.2 创建GitHub远程仓库
6.3 远程仓库操作
命令名称 | 作用 |
---|---|
git remote -v | 查看当前所有远程地址别名 |
git remote add 远程地址 | 起别名 |
git push 别名 本地分支 | 推送本地分支上的内容到远程仓库 |
git clone 远程地址 | 将远程仓库的内容克隆到本地 |
git pull 别名 远程分支 | 拉取远程库分支内容,与对应本地库分支合并 |
6.3.1 创建远程仓库别名
git remote add 远程地址
6.3.2 推送本地库分支到远程库
git push 别名 本地分支
(1)本地库显示推送成功
(2)远程库显示推送成功
*将我的账户添加到凭据管理器里
*添加成功
(3)远程库查看
6.3.3 将远程库拉取到本地库
git pull 别名 远程分支
6.3.4 克隆远程库到本地库
(1)克隆远程库时可以不用登录远程账号。
(2)clone会进行如下操作:拉取代码、初始化本地仓库、创建别名。
第七章 IDEA集成Git
7.1 配置Git忽略文件
(1)Eclips特定文件
(2)IDEA特定文件
(3)Maven工程的target目录
(4)为什么要忽略这些文件?
这些文件与项目的实际功能无关,不参与服务器的部署运行。忽略这些文件能够屏蔽IDE工具之间的差异。
(5)如何忽略这些文件?
- 创建忽略规则文件(前缀名可以随意取,建议是git.ignore)
这个文件的存放位置原则上可以随意放置,但是为了引用~/.gitconfig文件,建议放在用户家目录下。
*.class
*.log
.mtj.tmp/
*.ctxt
*.zip
*.rar
*.nar
*.ear
*.via
*.tmp
*.err
*.tat.gz
*.jar
.warhs_err_pid
.classpath
.project
.settings
target
.idea
*.xml
- 在.gitconfig文件中引用忽略配置文件(此文件在Windows的家目录中)
[user]
name = zrx
email = zrx@qq.com
[core]
excludesfile=C:\Users\huawei\git.ignore
注意:这里使用的是正斜线(/),不是反斜线(\)
7.2 定位Git程序
(1)创建Maven工程
(2)在Maven工程下添加git
7.3 初始化本地库
(1)VCS(版本控制工具设置) ----->VCS Operations -------> Create Git Repository
(2)添加成功
7.4 添加到暂存区
(1)文件颜色:
红色 ----------> 表示还没有添加到暂存区
绿色 ----------> 表示已经添加到暂存区
灰色 ----------> 被忽略的文件
黑色 ----------> 文件提交到本地
蓝色 ----------> 提交到本地库的文件被修改了
(2)如何添加文件到暂存区
7.5 提交到本地库
7.6 切换版本
(1)当文件被修改以后需要重新添加到暂存区,再重新提交本地库,提交本地库时IDEA会出现如下提示信息:
注意:在新版的IDEA中点击commit以后不会直接出现版本对比信息,双击需要提交的文件就会出现版本对比。
(2)更换版本:
更换以后头指针指向改变:
7.7 创建分支
7.8 切换分支
7.9 合并分支
(1)正常合并
(2)冲突合并
在不同分支更改了同一个文件的内容后,再合并分支,则会出现冲突合并,此时需要手动更改有冲突的地方。
具体操作如下:
第八章 IDEA集成GitHub
8.1 设置GitHub账号
(1)在IDEA中找到GitHub:
File >> Settings >> GitHub
注:如何没有的话,则在Plugins里先下载。
(2)添加账号:
多种登录方式
*Log In via GitHub
通过账号密码登录(难登录的时候可以选择口令登录)
*Log In with Token
先通过以下步骤,在Github里面新建口令。
在IDEA里通过口令登录:
8.2 分享工程到GitHub
8.3 push推送本地库到远程库
注意:
(1)有两种推送方式,在IDEA里默认使用https协议的链接,通过https的方式推送有时候不会成功(和网络有关),可以通过ssh免密登录。
(2)push是将本地库代码推送到远程库,如果本地库代码和远程库代码版本不一致,push的操作就会被拒绝。要想push成功,那么本地库的版本要比远程库的版本高。因此在更改本地库的代码前,要先检查远程库和本地库的区别。如果本地库的代码版本已经落后,就要先pull拉取一下远程库的代码,将本地库的代码更新到最新以后再修改,提交,推送。
8.4 pull拉取远程库到本地库
8.5 clone克隆远程库到本地
第九章 国内代码托管中心—码云
9.1 简介
码云是开源中国推出的基于Git的代码托管服务中心,使用方式和GitHub一样。
网址:https://gitee.com/
9.2 码云账号登录与注册
9.2 创建码云远程登录仓库
9.3 IDEA集成Gitee
(1)File >> Settings >> Plugins
安装好Gitee之后,在Version Control里面就会有Gitee
(2)添加登录账号
9.3 Gitee操作
通过Gitee推送拉取代码的操作和GitHub的一样。