git与gerrit基础概念
序
本文记录了 git 与 gerrit 学习所得
重点关注于当前所用到的实际操作部分,其余理论部分以及更复杂用法留待将来用到时继续补充
1 Git 与 Gerrit
Git 是当前全世界流行的分布式版本控制工具,但是只适用于纯文本文件,包括markdown、网页、代码等,一般不用于图片、视频、.doc文档等
实际上是在当前目录下新建一个名为 .git 的隐藏文件夹,作为本地仓库 / 版本库(Repository),切记不可手动直接修改内容
Gerrit = Git + 强制代码审核
只有通过了代码审核,才能提交至远程仓库然后合并(merge)
2 Git使用
2.1 一些概念
2.1.1 四块区域
git 在具体使用中,可分为三个区域:
工作区(Working Directory):实际代码文件等存放的地方
暂存区(Stage / Index):已经完成修改,等待最终提交文件的存放之处
本地仓库 / 版本库(Repository):当前分支的最终更改提交处
加上远程仓库,实际可视为使用不同命令,实现文件在四个区域之间来回传输
2.1.2 本地与远程
相较于传统的SVN等集中式版本控制系统,git 的最大优势在于无论有无网络,皆可工作:即可以把仓库建在本地,也可以建在远程服务器
可以先在本地修改,完成后推送到远程服务器,或者是不通过服务器直接互相交换
远程仓库既可以作为备份,又可以让其他人通过该仓库来协作
GitHub上免费托管的Git仓库,任何人都可以看到(但只有你自己才能改)因此不能把敏感信息放进去
2.1.3 分支
每一次 commit 可视为增加一个时间节点,因此整个写代码、改代码、提交代码的过程可以串成一条时间线
这条时间线即为默认状态下所用的 master 分支
当多人合作,或者避免在主线上做改动,可以新建分支,例如 develop 分支:
在 develop 分支中的修改完成后可以与 master 中的代码 合并(merge),然后删掉 develop 分支
也可以继续增加分支适应不同删改需求:
2.2 流程
2.2.1 初始化
用户配置
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
加了 “ --global ” 后,本台机器所有仓库都使用这个用户配置
仓库建立
git init:建立仓库
只能监控当前目录与子目录下的文件更改
2.2.2 提交修改
2.2.3 撤回修改
文件在版本库/仓库需要撤销:
即,版本回退,流程如下:
文件在暂存区,需要撤销更改且需要退回工作区
git reset HEAD < file >
撤销一次 git add,即将暂存区中的文件撤回到工作区
文件在暂存区,需要撤销更改但不需要退回工作区
git check --< file >
撤销回到最近一次 git add 状态,即刚 add 时的状态
文件在工作区,需要撤销更改
git check --< file >
撤销回到最近一次 git commit 状态,即与版本库/仓库中相同的版本
2.3 命令
git init:在当前目录下新建本地仓库
git pull:取回远程仓库代码,并于本地的合并
实际上 git pull = git fetch + git merge
git add < file >:将 file 加入监控
git status:查看暂存区状态
git diff:查看修改(缓存区文件 V.S. 原始文件)
git reset:将暂存区的文档退回至工作区
git commit -m " <说明>":将暂存区中的文件提交至本地仓库,并附上<说明>
git log:查看上传记录(只有当次的操作记录)
--pretty=oneline:查看上传记录,且每条记录缩写至一行内
git reflog:查看所有历史命令与版本提交号
git checkout:查看当前分支
-a:查看所有分支
<分支>:切换到<分支>
git与gerrit基础概念相关推荐
- Git基础概念与Flow流程介绍
文章目录 Git相关 基本概念 常见客户端 TortoiseGit Sourcetree Intellij Idea 命令行 常用命令 存储区域 命令之 add & commit &p ...
- 初中高级的 git 和 gerrit 技巧【大型项目实战总结 CR 经验】
序 前半部分属于基础,后半部分属于进阶.从初级到中级再到我都 hold 不住的高级.全文共 12000 余字,超干超干的那种. 然而,写完一半的时候,我突然虎躯一震,我是不是在造轮子?随后我悄悄的搜了 ...
- Git、Gerrit、Repo三者的区别及使用
Git.Gerrit.Repo三者的概念及使用 三者各自作用: git:版本管理库,在git库中没有中心服务器的概念,真正的分布式. repo:repo就是多个git库的管理工具.如果是多个git库同 ...
- Docker笔记1 基础概念和镜像
基础概念 开发环境deepin linux 15.11.安装docker之后,执行命令: sudo usermod -aG docker $USER_NAME 让docker和当前用户在一个组中,可以 ...
- Git与GitHub基础全套完整版教程(持续更新....)
Git基础 1使用Github 1-1目的 1-2基本概念 2 Git在本地的结构 3 Git和代码托管中心 局域网环境下 外网环境下 4 Git命令行操作 5 基本操作 状态查看: vim保存退出命 ...
- UnrealEngine5实操--基础概念(持续补充)
UnrealEngine5实操--基础概念 Unreal 术语 UE5 上手指南 关卡快速搭建 视口标准按键操作 Editor 视角移动速度调节 Unreal Editor 快速测距 Actor 操作 ...
- Nebula Graph学习篇1_基础概念、初步使用、整合SpringBoot使用
目录 一.基础概念 图数据库的概念 适用场景 数据模型 路径 点的VID 架构 二.初步使用 Windows安装Nebula-Graph服务 Nebula Console 连接 Nebula-Grap ...
- 谷粒商城项目篇1_分布式基础篇_分布式基础概念、环境搭建、创建项目
写在前面 为丰富项目经验,特此学习B站开源视频<全网最强电商教程<谷粒商城>对标阿里P6/P7,40-60万年薪>希望通过此学习能巩固所学,将技术栈串接起来. 此项目三个阶段 ...
- 谷粒商城项目1——分布式基础概念、环境搭建
二.分布式基础概念 1.微服务架构 一个单体应用开发为一套小服务,每个小服务在自己的进程中,并使用轻量级机制通信 拒绝大型单体应用,基于业务边界进行服务微化拆分,各个服务独立部署运行 2.集群.分布式 ...
最新文章
- Fckeditor PHP/ASP File Upload Vul
- int的长度_Java中String长度有限制吗?身边的同事每一个人知道!
- python爬虫学习:爬虫QQ说说并生成词云图,回忆满满
- ELK学习6_Kafka-Logstash-Elasticsearch数据流操作
- leetcode 140. Word Break II | 140. 单词拆分 II(动态规划)
- 【ArcGIS遇上Python】ArcGIS Python实现批量化矢量和栅格数据重命名
- 猜数字游戏python程序用函数guesssecret_Python-三、函数
- python 方差_python统计分析总体方差检验
- python通过什么对象连接数据库步骤_python如何连接数据库
- 网盘助手插件chrome插件
- 2019-不得不了解的前端趋势
- vnc连接服务器怎么修改配置,VNC配置最详细易懂教程-图文并茂
- nacos connect timed out executing XXX
- 图解电脑上Firefox浏览器无法打开的解决办法
- 输入一个字符串,逆序并输出
- 英格兰的政治+德意志的工业科技+犹太的金融+北美的丰富资源=世界NO.1强国
- 传奇私服服务器怎么增加npc,传奇私服装备打造NPC设置方法
- 编写程序,实现一个基于面向思想的、具有开户、查询、取款、存款、转账、锁定、解锁和退出功能的银行管理系统。
- C语言:输入两个数字,将其按从小到大输出!
- 职业“小三劝退师”,真的能拯救你的婚姻吗?