目录
git commit、git push、git pull、 git fetch、git merge 的含义与区别
前言
在当今的软件开发领域,高效的版本控制系统是确保团队协作顺畅、代码质量可控的关键。git 作为一个分布式版本控制系统,凭借其强大的分支管理、协作能力和高效的性能,成为了众多开发者首选的工具。本文将深入探讨 git 的基本概念、与传统版本控制系统的对比、常用命令以及其理论原理,帮助读者全面了解并熟练运用 git。
一、git简介
git 是由 linux 之父 linus torvalds 设计的分布式版本控制系统,最初是为了管理 linux 内核开发而创建的。与传统的集中式版本控制系统(如 svn)不同,git 让每个开发者都拥有完整的本地仓库,可以独立地进行版本控制和提交。这种分布式的设计使得 git 具有出色的分支管理能力和协作效率。
1.git 与 svn 区别点
-
1、git 是分布式的,svn 不是:这是 git 和其它非分布式的版本控制系统,例如 svn,cvs 等,最核心的区别。
-
2、git 把内容按元数据方式存储,而 svn 是按文件:所有的资源控制系统都是把文件的元信息隐藏在一个类似 .svn、.cvs 等的文件夹里。
-
3、git 分支和 svn 的分支不同:分支在 svn 中一点都不特别,其实它就是版本库中的另外一个目录。
-
4、git 没有一个全局的版本号,而 svn 有:目前为止这是跟 svn 相比 git 缺少的最大的一个特征。
-
5、git 的内容完整性要优于 svn:git 的内容存储使用的是 sha-1 哈希算法。这能确保代码内容的完整性,确保在遇到磁盘故障和网络问题时降低对版本库的破坏。
2.git的介绍
git的基本工作原理和它是如何进行版本控制的
git的分支管理有哪些特色和优点
git在团队协作中如何提高团队的效率和协作能力
3.git 工作流程
工作流程如下:
- 克隆 git 资源作为工作目录。
- 在克隆的资源上添加或修改文件。
- 如果其他人修改了,你可以更新资源。
- 在提交前查看修改。
- 提交修改。
- 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。
下图展示了 git 的工作流程:
4.git 工作区、暂存区和版本库
基本概念:
下面该图展示了工作区、版本库中的暂存区和版本库之间的关系:
二、git安装配置
在使用git前我们需要先安装 git。git 目前支持 linux/unix、solaris、mac和 windows 平台上运行。
git 各平台安装包下载地址为:git - downloads
1.linux 平台上安装
我这里是使用centos系统安装git
安装命令
$ yum install curl-devel expat-devel gettext-devel \
openssl-devel zlib-devel
$ yum -y install git-core
$ git --version
git version 2.34.1
我们也可以在官网下载源码包来安装,最新源码包下载地址:git - downloads
解压安装下载的源码包:
$ tar -zxf git-2.34.1.tar.gz
$ cd git-1.7.2.2
$ make prefix=/usr/local all
$ sudo make prefix=/usr/local install
2.windows 平台上安装
git官网如下(注:下载安装2.2以上的版本):
git下载官网https://git-scm.com/downloadshttps://git-scm.com/downloads
官网下载:
安装步骤
三、git 创建仓库和下载
1、首先需要注册一个gitee账号
注册登录好之后,接下来我们将创建我们的码云仓库
创建我的仓库
创建成功后一定要保存一下命令信息,因为只会出现一次
2.git初始化并提交到远程仓库
首先在本地新建一个文件夹作为本地仓库用于存储,然后打开git bash here终端
执行全局设置命令
此时在c盘用户路径下会出现一个.gitconfig文件,用于git的全局配置
创建git仓库,并将这个仓库标记为git所托管的本地仓库
将文件交给git管理并上传到本地仓库
提交到远程仓库并推送
文件的提交(commit)是将本地修改保存到本地仓库中的一个步骤,而推送(push)则是将本地仓库中的提交同步到远程仓库中的过程。
第一次需要输入账户密码
可以看到我们的码云仓库中存在该文件
3.另一用户下载该仓库文件
新建文件夹模拟他人,进入git终端
下载文件和代码需要先拿到仓库的url
下载代码或文件
git clone 时,可以所用不同的协议,包括 ssh, git, https 等,其中最常用的是 ssh,因为速度较快,还可以配置公钥免输入密码。各种写法如下:
四、使用git代码冲突场景和解决方案
在协作开发中,经常会遇到多人对同一文件进行修改导致的代码冲突。这种情况下,git 提供了多种解决方案来处理代码冲突。
场景: 假设有两个开发者 a 和 b 在不同的本地分支上修改了同一个文件,并尝试将它们推送到远程仓库时,就可能发生代码冲突。
解决方案: 以下是处理代码冲突的通用步骤:
1.拉取最新代码: 在开始处理冲突之前,首先从远程仓库拉取最新的代码:
git fetch origin git checkout your_branch git merge origin/your_branch
2.查找冲突: 如果在合并操作后出现了冲突,git 会标记出冲突的部分,你可以使用如下命令来查看冲突的文件:
git status
3.手动解决冲突: 找到包含冲突的文件,手动编辑文件以解决冲突。冲突部分一般被包裹在类似以下的标记中:
<<<<<<< head
// 你的修改
=======
// 别人的修改
>>>>>>> other_branch
4.标记为已解决: 当你解决完所有的冲突后,在命令行中执行以下命令标记这些文件为已解决:
git add <conflicted_file>
5.完成合并: 解决所有的冲突后,执行合并操作:
git commit -m "解决代码冲突"
6.推送修改: 最后,将解决冲突后的代码推送到远程仓库:
git push origin your_branch
五、git 基本原理和常用命令
git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull,后面我们会详细介绍。
说明:
- workspace:工作区
- staging area:暂存区/缓存区
- local repository:版本库或本地仓库
- remote repository:远程仓库
1.创建仓库命令
下表列出了 git 创建仓库的命令:
命令 | 说明 |
---|---|
git init | 初始化仓库 |
git clone | 拷贝一份远程仓库,也就是下载一个项目。 |
2.提交与修改
git 的工作就是创建和保存你的项目的快照及与之后的快照进行对比。
下表列出了有关创建与提交你的项目的快照的命令:
命令 | 说明 |
---|---|
git add | 添加文件到暂存区 |
git status | 查看仓库当前的状态,显示有变更的文件。 |
git diff | 比较文件的不同,即暂存区和工作区的差异。 |
git commit | 提交暂存区到本地仓库。 |
git reset | 回退版本。 |
git rm | 将文件从暂存区和工作区中删除。 |
git mv | 移动或重命名工作区文件。 |
git checkout | 分支切换。 |
git switch (git 2.23 版本引入) | 更清晰地切换分支。 |
git restore (git 2.23 版本引入) | 恢复或撤销文件的更改。 |
提交日志
命令 | 说明 |
---|---|
git log | 查看历史提交记录 |
git blame <file> | 以列表形式查看指定文件的历史修改记录 |
远程操作
命令 | 说明 |
---|---|
git remote | 远程仓库操作 |
git fetch | 从远程获取代码库 |
git pull | 下载远程代码并合并 |
git push | 上传远程代码并合并 |
git commit、git push、git pull、 git fetch、git merge 的含义与区别
3.git 常用命令大全
git 常用命令:
发表评论