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