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)记录哪个开发人员做了变更 ( ...
随机推荐
- salesforce零基础学习(一百一十四)Dynamic related list
本篇参考: https://help.salesforce.com/s/articleView?id=release-notes.rn_forcecom_lab_dynamic_related_lis ...
- 磁盘IO 基本常识
计算机硬件性能在过去十年间的发展普遍遵循摩尔定律,通用计算机的 CPU主频早已超过3GHz,内存也进入了普及DDR4的时代.然而传统硬盘虽然在存储容量上增长迅速,但是在读写性能上并无明显提升,同时SS ...
- vue对象深拷贝(避免对象赋值,改变一个对象的值,另一个对象也变化)
对象直接赋值时,例如 let b = { name: 'name', age: 12} let a=b, a.age = 13 console.log(b.age) // 13 由此可见,当改变 a ...
- 我和 chatGPT 对线操作系统!
大家都知道现在 chatGPT 已经在多个领域展现了及其强大的工地,比如文案策划,毕业论文方便,甚至很多程序员都直接让 chatGPT 帮忙写代码了,在一些模板化的代码方面,chatGPT 更展示了优 ...
- .NET周报 【4月第1期 2023-04-02】
国内文章 探索 SK 示例 -- GitHub 存储库中的机器人 https://www.cnblogs.com/shanyou/p/17280627.html 微软 3月22日 一篇文章" ...
- LabVIEW Actor Framwork (2)________ 边学边做server&client
回顾下初始需求: 现在要做一个类似聊天的demo,一个server端,若干个client端:首先是server启动,通过server可以打开若干个client端,然后每个client可以独立给serv ...
- Let's Encrypt 泛域名证书申请
泛域名 泛域名证书又名通配符证书是SSL证书中的其中一种形式,一般会以通配符的形式(如:*.domain.com)来指定证书所要保护的域名. OV证书和DV证书都会有通配符的域名形式提供,而EV证书一 ...
- Python程序笔记20230301
打印九九乘法表 for i in range(1, 10): for j in range(1, i+1): print(i, "x", j, "=", i * ...
- Redis(三)jedis与锁
1 Jedis 引入依赖 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis ...
- 对dubbo的DubboReference.check的参数进行剖析
背景 在使用dubbo的时候,发现当消费者启动的时候,如果提供者没有启动,即使提供者后来启动了,消费者也调不通提供者提供的接口了. 注册中心使用都是nacos dubbo版本是3.0.4 例子 接口 ...