前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Git应用学习笔记

Git应用学习笔记

作者头像
CtrlX
发布2022-11-08 16:11:32
4130
发布2022-11-08 16:11:32
举报
文章被收录于专栏:C++核心编程C++核心编程

目录

  • Git简介
  • Git使用
  • 版本库目录规范
  • 编码规范

关于版本控制

什么是“版本控制”?

版本控制就是一种记录一个或若文件内容变化,以便来查阅特定版本修订情况的系统。

版本控制系统(VCS)带来的好处

可已将选定的文件回溯到之前的状态,甚至将整个项目都回退到过去某个时间点的状态, 可以比较文件细节的变化,查出是谁最后修改了那个地方,从而可以找出导致问题的原因。 就算你把整个项目中的文件改的改删的删,照样可以轻松恢复到之前的样子。

版本控制系统分类

  • 本地版本控制系统(如:RCS)
  • 集中化的版本控制系统(如:CVS、Subversion)
  • 分布式版本控制系统(如:Git、Mercurial、Bazaar)

Git简介

Git(吉特)是一个分布式版本控制软件

  • 最初由林纳斯·托瓦兹(Linus Torvalds)创作。
  • 最初目的是为更好地管理Linux内核开发而设计。

命名来源:

Git简史:

  • • 1991-2002年间,绝大多数的Linux内核维护工作都花在了提交补 丁和保存归档的繁琐事务上。
  • • 到了2002年,整个项目组开始启用BitKeeper来管理和维护代码。
  • • 到了2005年,开发BitKeeper的商业公司收回免费使用权,迫使 Linux开源社区开发自己的版本系统。
  • • 版本系统订制的目标
    • • 速度
    • • 简单的设计
    • • 对非线性开发模式的强力支持(允许成千上万个并行开发的分支)
    • • 完全分布式
    • • 有能力高效管理类似Linux内核一样的超大规模项目(速度和数据量)

GIt使用

Git的文件状态

Git的三种状态。

  • 已修改(modified)表示修改了文件,但还没保存到数据库中。
  • 已暂存(staged)表示对一个已修改文件的当前版本做了标记,使之包含在下次提交的快照中。
  • 已提交(committed)表示数据已经安全地保存在本地数据库中

Git项目拥有三个阶段:工作区、暂存区以及git目录

  • 工作区是对项目的某个版本独立提取出来的内容。
  • 暂存区是一个文件,保存了下一次将要提取的文件列表信息
  • Git目录是Git用来保存项目的元数据和对象数据库的地方

基本的git工作流程如下:

  • 在工作区中修改文件。
  • 将你想要提交的更改选择性的暂存,这样只会将更改的部分添加到暂存区。
  • 提交更新,找到暂存区的文件,将快照永久性的存储到Git目录。

Git环境设置

Git的安装,我们已经专门录制了视频,这里强调首次配置。

Git常用命令-本地操作

  • git init:初始化工作目录
  • git add:添加文件,如git add *.txt
  • git status:跟踪文件状态
  • git rm:从版本移除文件
  • git mv:移动文件
  • git commit:提交文件,如git commit -m 日志信息
  • git log:查看提交日志
  • git reset:取消暂存的文件
  • git checkout:撤销对文件的修改

Git常用命令-远程操作

• git remote [-v]:查看你已经配置的远程仓库服务器

• git remote add :添加远程仓库

• git remote rename :远程仓库重命名

• git remote remove :移除远程仓库

• git remote show :查看某个远程仓库

• git fetch :从远程仓库中抓取,不影响工作目录

• git pull :从远程仓库中拉取到工作目录

• –allow-unrelated-histories:

• git push :推送到远程仓库

• git clone :克隆项目

Git标签

• 使用标签功能来标记发布结点(v1.0 、v2.0)

​ • git tag

• 标签分类

​ • 轻量标签(lightweight):本质上是将提交校验和存储到一个文件中,没有保存任何其他信息;

​ • git tag <标签名>

​ • 附注标签(annotated):是存储在Git数据库中的一个完整对象,它们是可以被校验的。

​ • git tag -a <标签名> -m <附注描述信息>

• 共享标签

​ • 默认情况下,git push命令并不会传送标签到远程仓库服务器上。

​ • 推送一个标签:git push origin <标签名称>

​ • 推送所有标签:git push origin –tags

Git分支概念

• 使用分支意味着你可以把你的工作从开发主线上分离开来,以免影响开发主线。

• 在很多版本控制系统中,完全创建一个源代码目录的副本。

• Git处理分支的方式可谓是难以置信的轻量,创建新分支几乎能在瞬间完成,并且在不同分支之间的切换操作也是一样便捷。

• Git鼓励在工作流程中频繁地使用分支与合并,哪怕一天之内进行许多次。

• Git的默认分支名字是master。在多次提交操作之后,你其实已经有一个指向最后那个提交对象的master分支。

Git分支命令

• 创建分支

​ • git branch

• Git怎么知道当前在哪一个分支上呢?

​ • 它有一个名为HEAD的特殊指针,向当前所在的本地分支

​ • 使用 git log 命令查看各个分支当前所指的对象

​ • git log –oneline –decorate

• 分支切换

​ • git checkout

• 分支提交

• 分支切换回master

Git分支操作流程

• 可以使用 -b 参数创建并切换分支

​ • git checkout -b

• 接到一个bug修复任务

​ • 创建并切换问题分支(git checkout -b iss53)

​ • 修复过程提交(git commit -m message)

• 暂停bug任务,修复紧急bug

​ • 无需删除iss53分支

​ • 创建并切换新分支,如hotfix

​ • 提交紧急任务修复内容

Git分支合并

• 首先切换到合并分支,如主分支

​ • git checkout master

• 执行分支合并命令

​ • git merge

• 合并冲突解决

​ • git status:查看冲突

​ • 冲突文件内容

​ • git mergetool:启用冲突解决工具

image
image

分支管理命令

• git branch -v:查看每一个分支的最后一次提交。

• git branch –merged:查看已合并的分支

• git branch –no-merged:查看未合并的分支

• git branch -d :删除分支

​ • 如果未合并的分支将会删除失败可以使用 -D 选项来强制删除

版本库目录规范

• 根目录结构

​ • documents:项目相关文档文件夹

​ • projects:项目代码文件夹

​ • README.md:自读文件

​ • README.en.md:自读文件(英文)

​ • 模板参考链接:https://gitee.com/zero-awei/hello-gitee.git

image
image
image
image

编码规范

• 编码规范

​ • 阿里巴巴Java开发手册

​ • Google开源项目风格指南

• 编码检查工具

​ • Java开发规约IDE插件

​ • 使用帮助:

​ • https://github.com/alibaba/p3c

​ • Cpplint

​ • 使用帮助:

​ • https://github.com/zh-google-styleguide/zh-google-styleguide

​ • https://cloud.tencent.com/developer/article/1494003

image
image
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-10-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
    • 关于版本控制
    • Git简介
    • GIt使用
      • Git的文件状态
        • Git的三种状态。
        • Git项目拥有三个阶段:工作区、暂存区以及git目录
        • 基本的git工作流程如下:
      • Git环境设置
        • Git常用命令-本地操作
          • Git常用命令-远程操作
            • Git标签
              • Git分支概念
                • Git分支命令
                  • Git分支操作流程
                    • Git分支合并
                      • 分支管理命令
                        • 版本库目录规范
                        • 编码规范
                        领券
                        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档