什么是版本控制系统?
版本控制系统是一种记录文件变更历史的系统,它允许开发者跟踪文件的修改、还原特定版本、并在多个用户之间协同工作。VCS 主要有两种类型:集中式版本控制系统(Centralized VCS,如 SVN)和分布式版本控制系统(Distributed VCS,如 Git)。
为什么需要版本控制?
- 版本追踪: 可以追踪文件的每一次修改,了解文件是如何演化的。
- 协同工作: 多人协同开发时,版本控制系统允许开发者合并彼此的工作,避免冲突。
- 备份和还原: 提供了对历史版本的备份和还原功能,防止意外丢失或损坏文件。
- 分支管理: 允许创建分支,开发新功能或修复 bug,而不影响主要的开发线。
- 追溯问题: 在出现问题时,可以快速追溯到导致问题的特定提交。
分布式版本控制系统
分布式版本控制系统是版本控制系统的一种,每个工作副本都是完整的仓库,包含整个项目的历史记录。Git 是最流行的分布式版本控制系统之一,与集中式版本控制系统(如 SVN)相比有一些独特的优势。
Git 的特点:
- 无需中央服务器: 每个工作副本都是完整的仓库,不需要中央服务器的存在。
- 离线工作: 开发者可以在没有网络连接的情况下继续工作,因为每个本地仓库都包含完整的历史记录。
- 分支操作高效: 分支合并和创建非常快速,因为所有的操作都是在本地进行的。
- 强大的分支管理: Git 提供了强大而灵活的分支管理,支持多分支并行开发。
Git的安装
官网:Git
下载如图:
下载完成之后基本上全部下一步就可以了
设置用户信息
在右键菜单中打开Git Bash
依次输入下面这两个命令
可以自行设置用户名字和邮箱,git不会检查邮箱是否正确
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
仓库
仓库是版本控制系统中存储项目文件及其历史记录的地方。它可以分为本地仓库和远程仓库,两者一起工作,使得开发者能够有效地进行版本控制和协同工作。
-
本地仓库:
- 本地仓库是存储在你本地计算机上的项目副本。通过在项目目录中运行
git init
命令,你可以将一个普通的目录转变为一个Git本地仓库。 - 本地仓库包含项目的所有文件和子目录,以及与这些文件和子目录相关的版本信息。Git会在本地仓库中创建一个隐藏的
.git
目录,其中包含有关版本历史、分支和其他Git元数据的信息。
- 本地仓库是存储在你本地计算机上的项目副本。通过在项目目录中运行
-
远程仓库:
- 远程仓库是存储在网络上的项目副本。它可以位于团队的协作平台(如GitHub、GitLab、Bitbucket等)或其他计算机上。
- 开发者可以通过
git remote add
命令将本地仓库与一个或多个远程仓库关联起来。远程仓库允许多个开发者协同工作,它是一个共享代码的中央存储库。 - 使用
git push
可以将本地的提交推送到远程仓库,而使用git pull
则可以从远程仓库拉取更新。
在协同开发中,本地仓库用于进行个人开发和测试,而远程仓库则用于多人协同工作,共享项目的最新进展。这种分离使得团队能够更好地组织和协调工作,并确保代码的一致性。
本地库基本命令
1.初始化仓库
使用git init可以初始化仓库,初始化仓库之后会在文件夹下面创建一个隐藏文件夹 .git
2.添加文件到暂存区
执行git add `文件名.后缀`之后可以将文件添加到暂存区,或者输入git add `.`添加所有文件到暂存区
3.查看目录和暂存区状态
使用git status可以检查工作目录和暂存区状态
4.提交文件到本地库
使用git commit -m "提交信息"可以将暂存区的文件提交至本地库中,这会创建一个新的版本号
5.从暂存区中移除文件
可以使用git reset `文件`来把文件从暂存区中删除
6.日志
输入git reflog可以查看简略班日志信息,也可以使用git log查看更详细的信息
7.回滚版本
可以使用git reset --hard `版本号`来回滚到指定版本,或是git revert `版本号`
注意事项:
- 使用git reset --hard会彻底删除工作目录中未提交的更改,请谨慎使用。
- 如果你的更改已经推送到远程仓库,最好不要修改历史记录,而是使用git revert创建一个新的提交来撤销更改。
- 在回滚前,请确保保存任何重要的更改,以免丢失数据。
分支
分支可以在同一仓库中并行开发多个独立的功能或修复不同的 bug,而不会相互干扰。在使用分支时,通常会有一个默认的主分支(通常是master
或main
)作为主要开发线,而其他分支则用于临时性的开发、修复或实验性工作。
1.创建分支
使用git branch `分支名` 来创建分支
2.查看分支
可以使用git branch来查看本地仓库的所有分支,并标记现在指向的分支
3.切换分支
使用git checkout `分支名`去切换分支
ps:可以使用git checkout -b `分支名`来创建分支并且切换
4.合并分支
使用git merge `分支名`可以将指定的分支合并到当前分支
5.删除分支
使用git branch -d `分支名`可以删除本地分支
远程仓库
远程仓库(Remote Repository)是位于网络上的一个 Git 仓库,可以通过网络访问和操作。通常,远程仓库用于协作开发,多人可以共享代码、协同工作,并保持项目的一致性。在远程仓库中,代码的版本控制信息被存储,可以通过克隆(clone)、拉取(pull)、推送(push)等操作进行访问和修改。
这里来拿gitee举例,大家可以参考这篇文章去进行一个基础操作Gitee 使用教程_gitee教程-CSDN博客
1.克隆仓库
可以使用git clong `仓库地址`将远程仓库的代码克隆到本地库
2.查看远程仓库
可以使用git remote -v来查看已配置的远程仓库信息
3.添加远程仓库
使用git remote add `远程仓库名字` `远程仓库地址` 可以将远程仓库配置到本地库的配置中
4.推送本地更改
使用git push `远程仓库名字` `分支名`可以将本地更改推送到远程仓库中
5.拉取远程更改
可以使用git pull `远程仓库名字` `远程仓库地址`将远程仓库最新的更改拉过来
解决冲突
解决合并冲突是在多人协作开发中常见的任务,通常发生在两个分支同时修改了同一部分代码的情况下。
这里来举一个例子说明
首先我在master分支下创建了一个文档
在hot-fix分支下修改了这一行
ps:这两个文件都要在所在的分支下提交本地库才会触发冲突
现在去尝试合并这两个分支
这里可以看到报错的文件是哪个,也可以使用git status命令去查看
然后现在打开这个文件
可以看到git给我们写的冲突标记,然后我们就手动修改一下冲突的内容,选择保留或者删除
然后标记文件为已解决
然后继续执行合并操作git merge --continue或者git commit -m "merge test"
文章来源:https://www.toymoban.com/news/detail-796077.html
出现这个之后是要你确认一下是否已修改冲突文件,如果已经修改就按esc,然后再输入:wq(保存并退出)来退出编辑,这样子就可以合并成功了,也可以使用git log来查看操作信息
如果在解决冲突的过程中发现有问题也可以输入git merge --abort来终止合并,回到合并之前的状态文章来源地址https://www.toymoban.com/news/detail-796077.html
到了这里,关于Git 分布式版本控制系统的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!