10.5. 版本控制(如Git)
版本控制系统(Version Control System,VCS)是软件开发过程中用于管理源代码的工具。它可以帮助你跟踪代码的变更历史,方便回滚到之前的版本,以及协同多人共同开发。Git是当前最流行的版本控制系统之一,我们将以Git为例,介绍版本控制的基本概念和操作。
10.5.1. Git基本概念
在Git中,主要有以下几个基本概念:
- 仓库(Repository):仓库是用来存储项目代码的地方,包含了项目的所有文件和文件的变更历史。
- 提交(Commit):提交是对文件的一次修改,每次提交都会生成一个唯一的哈希值(如
a3f6c9d),用于标识该提交。 - 分支(Branch):分支是代码的一个独立版本,可以在分支上进行修改和提交,而不会影响其他分支。主分支通常称为
main或master。 - 合并(Merge):合并是将一个分支的更改应用到另一个分支的操作。这通常用于将功能分支的更改合并到主分支。
10.5.2. Git基本操作
以下是一些常用的Git操作:
克隆仓库(Clone):将远程仓库复制到本地计算机。
git clone <repository_url>
查看状态(Status):查看工作目录的状态,包括已修改、已暂存和未暂存的文件。
git status
添加文件(Add):将文件添加到暂存区,以便在下次提交中包含这些更改。
git add <file>
若要添加所有修改过的文件,可以使用:
git add .
提交更改(Commit):将暂存区中的更改提交到仓库。
git commit -m "Commit message"
拉取更改(Pull):从远程仓库获取最新更改并合并到当前分支。
git pull
推送更改(Push):将本地仓库的更改推送到远程仓库。
git push
创建分支(Branch):创建一个新的分支。
git branch <branch_name>
切换分支(Checkout):切换到指定分支。
git checkout <branch_name>
若要在切换分支的同时创建新分支,可以使用:
git checkout -b <branch_name>
合并分支(Merge):将指定分支的更改合并到当前分支。
git merge <branch_name>
git branch -d <branch_name>
10.5.3. Git工作流示例
以下是一个使用Git进行协作开发的简单示例:
克隆远程仓库到本地计算机:
git clone https://github.com/your-username/your-repository.git
创建并切换到新的功能分支:
git checkout -b new-feature
对项目进行修改,然后将更改添加到暂存区:
git add .
提交更改:
git commit -m "Add new feature"
切换回主分支:
git checkout main
从远程仓库拉取最新更改:
git pull
将新功能分支合并到主分支:
git merge new-feature
将合并后的主分支推送到远程仓库:
git push
删除本地的功能分支(如果不再需要):
git branch -d new-feature
通过这个示例,你可以了解到如何使用Git进行基本的协作开发。实际项目中,你可能还需要处理合并冲突、回滚提交等高级操作。要深入了解Git,建议参考官方文档或其他教程。
总之,版本控制(如Git)是软件开发中的重要工具。掌握Git的基本概念和操作,可以帮助你更高效地管理代码和协同开发。在实际项目中,除了掌握基本操作,还需要根据项目需求灵活运用各种Git功能。
推荐阅读:
https://mp.weixin.qq.com/s/dV2JzXfgjDdCmWRmE0glDA
https://mp.weixin.qq.com/s/an83QZOWXHqll3SGPYTL5g

10.5. 版本控制(如Git)的更多相关文章
- 版本控制工具——Git常用操作(上)
本文由云+社区发表 作者:工程师小熊 摘要:用了很久的Git和svn,由于总是眼高手低,没能静下心来写这些程序员日常开发最常用的知识点.现在准备开一个专题,专门来总结一下版本控制工具,让我们从git开 ...
- 版本控制工具Git工具快速入门-Linux篇
版本控制工具Git工具快速入门-Linux篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.版本管理系统的介绍 1>.版本管理系统的特点 1.1>.自动生成备份: ...
- 版本控制工具Git工具快速入门-Windows篇
版本控制工具Git工具快速入门-Windows篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 最近在学习Golang语言,之前的开发环境在linux上开发的,后来由于办公用的是w ...
- 10篇写给Git初学者的最佳教程(转)
身为网页设计师或者网页开发者的你,可能已经听说过Git这个正快速成长的版本控制系统.它由GitHub维护:GitHub是一个开放性的.存储众人代码的网站.如果你想学习如何使用Git,请参考本文.在文章 ...
- 开源分布式版本控制工具 —— Git 之旅
Git 主张的分布式代码库与文件快照的设计思想,相对于传统 CVS.SVN 等集中式.文件差异式版本控制工具是一种挑战与颠覆.Git 带来了离线提交.轻量级分支等诸多便利.不过,也有人质疑 Git 的 ...
- Android群英传神兵利器读书笔记——第二章:版本控制神器——Git
本人一直是徐医生的真爱粉,由于参加比赛耽误了8天,导致更新得有点慢,大家见谅 2.1 Git的前世今生 Git是什么 Git安装与配置 2.2 创建Git仓库 Git init Git clone 2 ...
- Git版本控制:Git查阅、撤销文件修改和撤销文件追踪
http://blog.csdn.net/pipisorry/article/details/47867097 查看文件的修改历史 git log --pretty=oneline 文件名 # 显示修 ...
- 版本控制工具 - Git
版本控制工具 - Git 安装完成后,打开Git Bash,这是一个命令行工具,用于操作仓库和仓库的文件.你可以通过命令将已经存在的项目变成仓库,也可以重新创建一个新项目再通过命令将其变成仓库,还可以 ...
- 痞子衡嵌入式:备受开源社区推崇的分布式版本控制工具(Git)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是分布式版本控制工具Git. 1.为什么需要版本控制系统? 单人软件项目开发过程,往往很多功能都是逐步增加的,在代码开发过程中,有的时候功 ...
- 版本控制— SVN & git
版本控制—— SVN & GIT 提问 什么是版本控制? 是能够一直监视代码文件的变更,并存储这些文件以便将来引用的一种机制(软件) 为什么要使用版本控制? (1)记录哪个开发人员做了变更 ( ...
随机推荐
- Object 通用方法
Object 通用方法 概览 public final native Class<?> getClass() public native int hashCode() public boo ...
- 面向Web开发人员的Linux实用入门
从 web 开发的视角说一下在使用 Linux 时遇到的问题,主要是针对操作本身,因为指令在网上都可以查到,不会深入原理,但尽量实用. 基础认知 为什么使用 Linux 最初我使用 Linux 是因为 ...
- IconJar - Mac 上的一款多功能图标素材管理工具
IconJar 是一个多功能的图标管理工具,由世界各地的设计师和开发人员使用.在一个应用程序中搜索.组织.预览和检索图标,而不是创建大量的文件夹来存储你的收藏.这款应用针对黑暗模式进行了优化,并支持S ...
- Lodash常用函数(二)
数组/对象方法 1.remove(元素筛选,分到两个数组) 2.sortedUniq (去重,排序) 3.takeRightWhile ( 从array数组的最后一个元素开始提取元素,直到 predi ...
- 电商AARRR模型分析(二)—R语言
AARRR模型可以说是用户运营和业务增长非常重要的模型.模型以用户的生命周期为核心,把增长步骤拆分为5个步骤,分别是:获取用户(Acquisition).用户激活(Activiation).用户留存( ...
- [架构]辨析: 高可用 | 集群 | 主从 | 负载均衡 | 反向代理 | 中间件 | 微服务 | 容器 | 云原生 | DevOps | ...
词汇集 灾备 冷备份 双机热备份 异地容灾备份 云备份 灾难演练 磁盘阵列(RAID) 故障切换 心跳监测 高可用 集群 主从复制(Master-Slave) 多集群横向扩容(master-clust ...
- [J2EE]Spring MVC中访问静态资源[转]
1 文献来源 SpringMVC访问静态资源的三种方式(转) - 博客园 SpringMVC访问静态资源的三种方式 + 提供解决方案的原作者 2 前言 2.1 访问不到静态资源起因 如果web.xml ...
- LeeCode 433 最小基因变化
LeeCode 433 最小基因变化 题目描述: 基因序列可以表示为一条由 8 个字符组成的字符串,其中每个字符都是 'A'.'C'.'G' 和 'T' 之一. 假设我们需要调查从基因序列 start ...
- MySQL(九)InnoDB行格式
InnoDB行格式 查看默认行格式: select @@innodb_default_row_format; 查看数据库表使用的行格式 mysql> use atguigudb; Reading ...
- 循序渐进的掌握uni-app,两个小时完成一个简单项目——新闻App、新闻小程序
效果图 一.创建项目 uni-app 是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS.Android.Web(响应式).以及各种小程序(微信/支付宝/百度/头条/ ...