0


Git 分布式版本控制系统

什么是版本控制系统?

版本控制系统是一种记录文件变更历史的系统,它允许开发者跟踪文件的修改、还原特定版本、并在多个用户之间协同工作。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 "[email protected]" 

仓库

仓库是版本控制系统中存储项目文件及其历史记录的地方。它可以分为本地仓库和远程仓库,两者一起工作,使得开发者能够有效地进行版本控制和协同工作。

  1. 本地仓库:- 本地仓库是存储在你本地计算机上的项目副本。通过在项目目录中运行 git init 命令,你可以将一个普通的目录转变为一个Git本地仓库。- 本地仓库包含项目的所有文件和子目录,以及与这些文件和子目录相关的版本信息。Git会在本地仓库中创建一个隐藏的.git目录,其中包含有关版本历史、分支和其他Git元数据的信息。
  2. 远程仓库:- 远程仓库是存储在网络上的项目副本。它可以位于团队的协作平台(如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 "提交信息"可以将暂存区的文件提交至本地库中,这会创建一个新的版本号![](https://img-blog.csdnimg.cn/direct/d71ea39c61884322aa2350dedb1d0b8e.png)
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"

出现这个之后是要你确认一下是否已修改冲突文件,如果已经修改就按esc,然后再输入:wq(保存并退出)来退出编辑,这样子就可以合并成功了,也可以使用git log来查看操作信息
如果在解决冲突的过程中发现有问题也可以输入git merge --abort来终止合并,回到合并之前的状态


本文转载自: https://blog.csdn.net/Cqssss_/article/details/135510406
版权归原作者 Cqssss_ 所有, 如有侵权,请联系我们删除。

“Git 分布式版本控制系统”的评论:

还没有评论