Git(版本控制与集成工具)

"上周明明能运行的代码,今天突然报错!"
"同事覆盖了我刚写的模块,现在全乱套了..."
"这个版本和线上版本有什么区别?怎么回退?"

版本控制介绍

在软件开发和项目管理的领域中,版本控制是一项至关重要的技术。它不仅帮助开发者更好地管理代码的变更,还能确保项目的稳定性和可维护性。

项目迭代:

当我们在进行开发时,并不是一个人就能够负责所有代码的开发,而且也很难一次性就做好平台的所有功能,总是会经历不断迭代、修改,上线新的版本的开发过程,所以一个项目就会出现很多版本,在软件开发过程中,代码不断地被修改、完善。如果没有有效的版本控制,当出现问题时,很难追溯到代码的变更历史,找出问题的根源。例如,多人协作开发一个项目时,不同开发者可能在同一文件的不同部分进行修改,没有版本控制就容易出现代码冲突,导致项目进度受阻。此外,当需要回滚到之前的稳定版本时,没有版本控制几乎是不可能完成的任务。

什么是版本控制

版本控制是指对软件开发过程中各种程序代码、配置文件及说明文档等文件变更的管理。简单来说:版本控制工具就像是一个时间机器,能够让开发者回到代码的任何一个历史状态。通过版本控制,开发者可以记录每次代码变更的作者、时间、内容等信息,方便日后的查阅和管理。

  • 本地版本控制

开发者在本地自行借助相关工具,如数据库,文档管理等进行本地代码的版本管理

  • 集中式版本控制

集中式版本控制系统的版本库是集中放在中央服务器的,而工作的时候,用的都是自己的电脑,所以每次写代码时首先要从中央服务器得到最新的版本,然后工作,完成工作后,又需要把自己做完的代码推送到中央服务器。集中式版本控制系统是必须联网才能工作,对网络带宽要求较高。并且由于本地客户端仅保留当前版本信息,当服务器丢失了,那么所有保存的数据就都丢失了。

优点:操作简单

缺点:由单个服务器集中管理,所有操作都需要服务器的支持

  • 分布式版本控制

分布式版本控制系统没有中央服务器,每个人的电脑都相当于一台服务器保留完整的版本库。因此工作的时候不需要联网了。当需要进行协同,进行版本更换时只需合并推送到主仓库就可以了,或可以把自己的代码新建一份仓库分享给其它人。

常用的版本控制工具

  • Git(gitlab)
  • CVS(Concurrent Versions System)  集中式
  • SVN(Subversion)集中式

简单比较

版本控制工具并发修改并发提交历史轨迹分布式
git支持支持支持更名支持
cvs支持不支持不支持更名不支持
svn支持支持支持更名不支持

示意图

Git入门到使用

git常见的应用场景:

  • github(全球最大的开源网站)
  • gitee–码云(免费的,国内的)
  • coding(国内的)

Git的工作原理

Git入门:

环境搭建

Git官网下载地址:Git - 下载软件包 - Git 版本控制系统

操作步骤可参考文档:Git下载及安装保姆级教程(内附快速下载方法)_git下载安装-CSDN博客

注意:必须给git配置用户名和邮箱

  • git config --global user.email "你自己的邮箱"
  • git config --global user.name"用户名"

可视化图形操作工具:TortoiseGit

TortoiseGit 是 Git 的 Windows Shell 界面工具,基于 TortoiseSVN。它是开源的,可以完全使用免费提供的软件构建。提供的支持,例如提交、显示日志、区分两个版本、创建分支和标签、创建补丁等。

官网下载地址:Download – TortoiseGit – Windows Shell Interface to Git

操作步骤可参照博主:Git & TortoiseGit 详细安装使用教程_tortoisegit安装-CSDN博客

工作原理

上面的六条命令在工作区、暂存区(stage)和版本库库之间复制文件。

  • git add files把当前文件放入暂存区域。
  • git commit 给暂存区域生成快照并提交。
  • git reset – files用来撤销最后一次git add files,你也可以用git reset撤销所有暂存区域文件。
  • git checkout – files 把文件从暂存区域复制到工作目录,用来丢弃本地修改。
  • git push 把本地仓库推送到远程库
  • git pull 从远程库中拉取内容到本地版本库中

Git常用命令

git init------初始化一个本地仓库
git config user.name '用户名'------配置用户名, 不配置默认使用全局配置.gitconfig
git config user.email '邮箱'------配置用户邮箱
git config list ------查看git配置
git clone [跟上要克隆的仓库地址]------克隆远程仓库到本地仓库
git staus------查看git仓库状态
git pull------远程拉取项目文件( 修改项目之前,一定要拉取最新的代码 )
git add------添加工作区文件至git暂存区( 修改后添加动作 )
git stage------等价与add  
git commit -m '版本描述'------将暂存区文件提交到仓库区, 生成一个版本
git push------将修改后的代码推送到远程仓库
git log------查看详细历史记录, 不能查看已删除的commit记录
git reflog------查看历史记录

git reset --hard HEAD或 git reset --hard 版本号------当前最新版本( 以下介绍两种方式 )
git reset --hard HEAD^------当前最新版本 的 前一个版本
git reset --hard HEAD~1------当前最新版本 的 前一个版本
git reset --hard HEAD~10------当前最新版本 的 前十个版本

git checkout 文件名------撤销工作区代码(只能作用在工作区和暂存区)
git reset HEAD 文件名------第一步: 将暂存区代码恢复到工作区
git checkout 文件名------第二步: 将工作区代码撤销

git diff HEAD -- 文件名------对比 版本库 与 工作区 中的代码
git diff HEAD HEAD^ -- 文件名------对比 版本库 与 版本库 中不同版本的代码
git diff  -- 文件名------对比 缓存区 与 工作区 中的代码
git diff --staged  -----缓存区和上次缓存区的比较
git diff --cached  -----缓存区和上次缓存区的比较

rm 文件名------第一步: 删除本地工作区文件
git rm 文件名------删除当前目录文件
git commit -m '删除描述'------第三步: 将删除操作提交到版本库;如果不想删除了, 在commit之前执行git checkout  --  文件名
git rm --cached --文件名  ----删除git库的文件

git tag -a v1.0 -m 'version 1.0'------在本地打标签v1.0是标签名
git push origin v1.0------推送标签到远程仓库
git tag -d 标签名------删除本地标签
git push origin --delete tag 标签名------删除远程仓库标签

git branch------查看git分支
git branch --名称 ----创建分支
git checkout test ----切换到test分支
git checkout -b dev------创建并切换dev分支
git push -u origin dev------设置本地分支跟踪到远程分支dev
git branch -d 非当前分支 ----删除非当前分支
git branch -d dev------删除已经终止的分支
git branch 分支名 版本号------恢复指定版本的分支

git check master------切换到master主分支
git merge dev------将dev分支合并到master分支
git push------将本地合并后的状态推送到远程仓库

使用

使用Git工具进行远程Github仓库推送和拉取可参照:

使用Git工具将本地仓库同步到远程Github仓库的基本操作-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值