Git入门

目录

Git基本命令

[第一章 Git概述](#第一章 Git概述)

[1.1 版本控制](#1.1 版本控制)

[1.2 为什么需要版本控制](#1.2 为什么需要版本控制)

[1.3 版本控制工具](#1.3 版本控制工具)

1.3.1集中式版本控制工具

[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

相关推荐
KuaFuAI31 分钟前
微软推出的AI无代码编程微应用平台GitHub Spark和国产AI原生无代码工具CodeFlying比到底咋样?
人工智能·github·aigc·ai编程·codeflying·github spark·自然语言开发软件
M_emory_39 分钟前
解决 git clone 出现:Failed to connect to 127.0.0.1 port 1080: Connection refused 错误
前端·vue.js·git
Make_magic41 分钟前
Git学习教程(更新中)
大数据·人工智能·git·elasticsearch·计算机视觉
不穿铠甲的穿山甲42 分钟前
git-.git目录解析
git
Mr_Xuhhh3 小时前
递归搜索与回溯算法
c语言·开发语言·c++·算法·github
唔知小罗10 小时前
git config是做什么的?
git
用户31574760813511 小时前
成为程序员的必经之路” Git “,你学会了吗?
面试·github·全栈
墨染86612 小时前
HP G10服务器ESXI6.7告警提示ramdisk tmp已满
github
油泼辣子多加14 小时前
2024年11月13日Github流行趋势
github
叫我龙翔14 小时前
【项目日记】仿mudou的高并发服务器 --- 整体框架搭建 ,实现时间轮模块
运维·服务器·网络·c++·github