目录
[第一章 Git概述](#第一章 Git概述)
[1.1 版本控制](#1.1 版本控制)
[1.2 为什么需要版本控制](#1.2 为什么需要版本控制)
[1.3 版本控制工具](#1.3 版本控制工具)
[1.3.2 分布式版本控制工具](#1.3.2 分布式版本控制工具)
[1.4 Git工作机制](#1.4 Git工作机制)
[1.5 Git和代码托管中心](#1.5 Git和代码托管中心)
[第二章 Git安装](#第二章 Git安装)
[第三章 Git常用命令](#第三章 Git常用命令)
[3.1 设置用户签名](#3.1 设置用户签名)
[3.2 初始化本地库](#3.2 初始化本地库)
[3.3 查看本地库状态](#3.3 查看本地库状态)
[3.3.1 首次查看](#3.3.1 首次查看)
[3.3.2 新建一个hello.txt,再次查看本地库状态](#3.3.2 新建一个hello.txt,再次查看本地库状态)
[3.4 添加暂存区](#3.4 添加暂存区)
[3.5 提交本地库](#3.5 提交本地库)
[3.6 修改文件(hello.txt)](#3.6 修改文件(hello.txt))
[3.7 历史版本](#3.7 历史版本)
[3.7.1 查看版本信息](#3.7.1 查看版本信息)
[3.7.2 版本穿梭](#3.7.2 版本穿梭)
[第四章 Git分支操作](#第四章 Git分支操作)
[4.1 什么是分支](#4.1 什么是分支)
[4.2 分支的好处](#4.2 分支的好处)
[4.3 分支操作](#4.3 分支操作)
[4.3.1 查看分支](#4.3.1 查看分支)
[4.3.2 创建分支](#4.3.2 创建分支)
[4.3.3 切换分支](#4.3.3 切换分支)
[4.3.4 修改分支](#4.3.4 修改分支)
[4.3.5 合并分支](#4.3.5 合并分支)
[4.3.6 产生并解决冲突](#4.3.6 产生并解决冲突)
[4.3.7 删除分支](#4.3.7 删除分支)
[第五章 Git团队协作机制](#第五章 Git团队协作机制)
[5.1 团队内协作](#5.1 团队内协作)
[5.2 跨团队协作](#5.2 跨团队协作)
[第六章 GitHub](#第六章 GitHub)
[第七章 国内代码托管中心-码云](#第七章 国内代码托管中心-码云)
[第十章 自建代码托管平台-GitLab](#第十章 自建代码托管平台-GitLab)
*先上命令
Git基本命令
|-----------------------------|--------------------------------------------------|
| 命令名称 | 作用 |
| git init | 在当前目录初始化一个新的Git仓库 |
| git clone <repository> | 克隆一个远程仓库到本地 |
| git add <file> | 将指定文件添加到暂存区 |
| git commit -m "<message>" | 提交暂存区的改动到本地仓库,并附带提交信息 |
| git push | 将本地仓库的改动推送到远程仓库 |
| git pull | 从远程仓库拉取最新的改动并合并到本地 |
| git branch | 查看所有分支,当前分支前面会标一个*号 |
| git checkout <branch> | 切换到指定的分支 |
| git merge <branch> | 合并指定分支到当前分支 |
| git log | 查看提交历史记录 |
| git status | 查看当前仓库的状态,包括哪些文件被修改、删除或新增等 |
| git diff | 查看尚未暂存的改动内容 |
| git reset <commit> | 回退到指定的提交,可以配合--hard、--soft、--mixed参数使用来实现不同的回退效果 |
| git rm <file> | 删除工作区文件,并且将这次删除放入暂存区 |
| git stash | 暂时将未提交的改动保存起来,以便后续恢复 |
第一章 Git概述
Git是一个免费的、开源的分布式版本控制系统,可以快速高效地处理从小型到大型的各种项目。
Git易于学习,占用空间小,性能极快。它具有廉价的本地库,方便的暂存区域和多个工作流分支等特性。其性能优于Subversion、CVS、Perforce和ClearCase等版本控制工具。
附上:Git官网:Githttps://git-scm.com/
1.1 版本控制
版本控制是一种记录文件内容变化,以便将来查阅特定版本修订情况的系统。
版本控制其实最重要的是可以记录文件修改历史记录,从而让用户能够查看历史版本,方便版本切换。
1.2 为什么需要版本控制
个人开发过渡到团队协作
1.3 版本控制工具
1.3.1集中式版本控制工具
CVS、SVN、VSS....
集中式版本控制(如 Subversion)有一个中央服务器,所有的代码提交都通过这个服务器进行。每个客户端通常只保留工作文件的副本,定期从中央服务器同步更新。
优点:
①集中式版本控制工具逻辑明确,操作简单,易于学习。
②中央服务器可以提供一个全局的视角,展示所有团队成员的代码变更情况。
③中央服务器也可以作为代码审查的工具,确保代码质量。
④权限管理相对简单,可以很容易地设置不同的访问级别。
缺点:①中央服务器的性能和稳定性对整个系统至关重要,一旦服务器出现故障,可能会影响所有用户。
②如果服务器无法访问,那么所有的代码提交和版本控制操作都无法进行。
③对于大型项目,集中式版本控制系统可能会遇到容量和性能的限制。
1.3.2 分布式版本控制工具
Git、Mercurial、Bazaar、Darcs...
分布式版本控制(如 Git)每个客户端都拥有完整的版本历史,可以独立进行提交操作,无需中央服务器。
优点:
①分布式版本控制去中心化的特性使得系统更可靠,不会因为单点故障导致整个系统瘫痪。
②可以在本地进行提交,不需要等待网络连接,提高了工作效率。
③适合大规模的团队协同开发,因为每个人都可以在自己的分支上独立工作,然后在需要的时候合并。
④支持复杂的分支策略,例如"合并主干"或"git flow"。
缺点:①对于初学者来说,可能感觉操作更为复杂,需要更多的学习时间。
②管理多个分支和合并操作可能变得复杂和混乱,尤其是在大型项目中。
③对于没有网络连接或网络不稳定的环境,分布式版本控制系统可能不太适用。
1.4 Git工作机制
1.5 Git和代码托管中心
代码托管中心是基于网络服务器的远程代码仓库,一般称为远程库。
局域网:GitLab
互联网:GitHub(外网)、Gitee码云(国内网站)
第二章 Git安装
官网下载安装包,安装时安装路径注意不要有中文和空格。一直默认即可。
安装详细步骤请参考:Git安装详细步骤-CSDN博客
在Git Bash命令终端输入git --version查看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 版本号 | 版本穿梭 |
3.1 设置用户签名
git config --global user.name 用户名
git config --global user.email 邮箱
用户名和邮箱随意写即可
作用:区分不同操作者身份。Git首次安装必须设置用户签名,否则无法提交代码。
设置好之后
在C盘指定路径下可以看到一个.gitconfig文件,记事本打开显示你设置的用户名邮箱
(*WY是我的电脑用户名,找到你们自己的电脑用户名即可)
3.2 初始化本地库
git init
作用:初始化一个新的Git仓库,或者将一个已经存在但没有进行版本控制的仓库转换为Git仓库。
执行git init命令后,会在指定工程的根目录下创建一个名为.git的子文件夹。这个子文件夹是Git用来跟踪和管理版本信息的核心部分。除了这个.git子文件夹,工程的其它文件并不会因为执行git init命令而发生改变。
执行后生成.git目录,如下图所示:
3.3 查看本地库状态
3.3.1 首次查看
git status
3.3.2 新建一个hello.txt,再次查看本地库状态
3.4 添加暂存区
git add
查看状态
此时文件仅存在于暂存区
将暂存区的文件删掉:
3.5 提交本地库
git commit -m "日志信息" 文件名
作用:将暂存区文件提交到本地库
查看本地库状态
3.6 修改文件(hello.txt)
修改文件
查看状态
添加暂存区
提交本地库
查看日志信息
3.7 历史版本
3.7.1 查看版本信息
git reflog 查看版本信息
git log 查看版本详细信息
3.7.2 版本穿梭
git reset --hard 历史版本号
Git切换版本,底层其实就是移动的HEAD指针。
第四章 Git分支操作
4.1 什么是分支
在版本控制过程中,同时推进多个任务,为每个任务就可以创建每个任务的单独分支。
4.2 分支的好处
同时并行推进多个功能开发,提高开发效率。
各分支在开发过程中,如果一个分支开发失败,不会对其他分支有任何影响。失败的分支删除重新开始即可。
4.3 分支操作
|------------------|----------------|
| 命令名称 | 作用 |
| git branch 分支名 | 创建分支 |
| git branch -v | 查看分支 |
| git checkout 分支名 | 切换分支名 |
| git merge 分支名 | 把指定的分支合并到当前分支上 |
4.3.1 查看分支
git branch -v
4.3.2 创建分支
git branch 分支名
此处我创建了一个名叫www的分支
4.3.3 切换分支
git checkout 分支名
切换到hhh分支
4.3.4 修改分支
4.3.5 合并分支
git merge 分支名
切换到master,将hhh合并到master
4.3.6 产生并解决冲突
冲突产生的原因:合并分支时,两个分支在同一个文件的同一个位置有不同的修改。Git无法
决定使用哪一个,必须人为决定新代码的内容。
①在master修改内容
②在hhh修改内容
③切回到master
④合并分支产生冲突
⑤打开文件,手动修改文件
⑥添加暂存区
⑦提交修改(此时不要加文件名)
4.3.7 删除分支
git branch -d 分支名
git branch -D 分支名 -强制删除
第五章 Git团队协作机制
5.1 团队内协作
5.2 跨团队协作
第六章 GitHub
GitHub网址:https://github.com/
第七章 国内代码托管中心-码云
Gitee网址:Gitee - 基于 Git 的代码托管和研发协作平台
第十章 自建代码托管平台-GitLab
GitLab网址:The DevSecOps Platform | GitLab