写点什么

git 原理与基本应用

作者:丛风
  • 2023-11-03
    江苏
  • 本文字数:1079 字

    阅读完需:约 4 分钟

概述

开发团队必然要面对一些代码问题:


  1. 个人操作引起的代码异常(不小心删除代码等)

  2. 多人开发下的各种冲突(多人同时修改同一文件等)

  3. 工作流重叠带来的混乱(开发、测试工作重叠,正常开发和紧急开发工作重叠等)


我们需要一个健壮的代码环境,以便尽量减少以上代码问题。git 做为目前最流行的代码版本管理工具,便能很好的帮我们解决以上问题。

安装和配置

请在官网下载对应程序并安装,安装后需要在命令行工具内进行如下设置:


git config --global user.name "Your Name"git config --global user.email "email@example.com"
复制代码


windows 系统也可使用 git 安装时自带的 git bash 输入命令

创建 git 仓库

将尚未进行版本控制的本地目录转换为 Git 仓库;


git init
复制代码

提交代码

在 git 仓库中,文件可能有三种状态:未被 git 跟踪、已跟踪但未记录修改、已跟踪并记录了修改。git 通过 add 命令来标记一个文件是否需要被跟踪,而通过 commit 命令把未记录的修改提交到 git 仓库。(提交的更改会在.git 目录里保存)


git add . # 设置当前目录的所有文件都被git跟踪git commit -a -m "commit modify" # 提交当前文件修改到git库
复制代码


可设置.gitignore 文件内容,来让 git 默认忽略一些文件的跟踪

版本控制

git 不同于有些其他版本控制工作,它每次 commit 会对所有修改进行快照。如下图所示:



快照会保存修改文件的全部内容(而不是文件的修改内容)。这样,git 可以很快速的查看历史上的任何一次 commit 版本。commit 本身也是一个存储对象,它保存着对应快照对象的索引;而分支只是指向特定某个 commit 对象的指针。基于这个设计,git 可以很快速的切换任何分支(只是显示某个特定 commit 对象的所有关联的快照);它也可以很轻易的创建成千上万个分支(分支只是指针,成本很低)。


HEAD 是指向当前工作分支的特殊指针

工作流并行开发的问题

我们可以通过分支的手段,在不同分支并行开发代码,以便让非线性工作流可以同时进行。但这样就会使两个分支的代码出现分叉,如下图:



当我们需要把 develop 开发的代码应用到 master 工作流时,git 会直接根据两个分支的最后一个版本进行对比,然后合并成一个新的版本,如下图:



这个也就是我们通常的 merge 操作


当两个版本直接存在冲突,则需要人为决定新版本使用什么样的代码,此操作一般称之为解决冲突

远程仓库的使用

git 是一个去中心化的分布式版本管理工具。这个设计可以让我们的版本管理工作(add、commit 等),不受远程仓库异常的影响(网络不可用、处理速度较慢等)。而因为这个设计,也导致任何一个版本库(本地、远程),都拥有项目的所有 commit 记录。git 通过跟踪的方式,绑定本地分支和远程分支。用户可以通过 pull 和 push 命令进行代码更新操作。


发布于: 刚刚阅读数: 3
用户头像

丛风

关注

还未添加个人签名 2019-11-13 加入

还未添加个人简介

评论

发布
暂无评论
git原理与基本应用_git_丛风_InfoQ写作社区