软件版本控制
作用:软件源码版本管理、多人协作开发、版本多分支开发、代码回滚(回退)等功能。
版本控制分类
集中式版本控制:将代码仓库放到一台服务上,开头式要依赖这台服务器。
优点:简单、方便管理、适合中小型项目
缺点:一旦服务器宕机,会严重影响开发。
SVN、CVS
分布式版本控制:
每个开发者的本地都有完整的版本库副本
无需联网即可提交、查看历史
拥有更强的分支管理能力
例如:Git、Mercurial、Bazaar
优点:容错性高,协作灵活,支持离线工作
Git设计目标
速度快
支持非线性开发(强大的分支能力)
完全分布式
能高效处理大型项目(如Linux内核)
Git的核心概念
1.工作区(Working Directory)
你当前正在编辑的文件目录
这些文件可能处于未跟踪或已修改状态
2.暂存区(Staging Area)
一个文件(通常位于.git/index),用于临时保存你打算提交的修改
可以理解为待提交内容的缓冲区
3.本地仓库(Local Repository)
存储所有版本历史的数据库
位于工作区的.git目录中
包含所有提交记录、分支信息等
4.远程仓库(Remote Repository)
公网仓库:gitee\githup(开源、私有)
私有(局域网)仓库:gitlab\gitea
本地仓库:git客户端创建或者clone(克隆)
5.提交(Commit)
对工作区修改的一次永久记录
每个提交都有一个唯一的哈希值作为标识
6.分支(Branch)
指向某个提交的指针
默认分支通常名为main或master
可以创建多个分支并行开发不同功能
操作命令
#查看当前Git配置(全局+当前仓库)
git config --list
#查看当前生效的用户名
git config user.name
#配置默认提交编辑器(如VS Code)
git config --global core.editor "编辑器"
#从远程仓库克隆到本地(自动创建仓库目录)
git clone <远程仓库地址>
#克隆时指定本地目录名
git clone <远程地址> <自定义目录名>
#查看当前工作区/暂存区文件状态
git status
#简化提交历史(仅哈希前7位+提交信息)
git log --oneline
#以图形化显示分支合并历史
git log --graph
#跳过暂存区,直接提交已跟踪文件的修改
git commit -am "提交信息"
#补充提交(合并到上一次提交,修改提交信息)
git commit --amend
#交互式暂存(按块选择文件内容
git add -p
#将指定文件从工作区添加到暂存区
git add <文件名>
#配置全局用户名(与 GitHub/GitLab 账号一致)
git config --global user.name "用户名"
#配置全局邮箱(与远程仓库账号绑定)
git config --global user.email "你的[隐藏]邮箱地址"
就进入D盘
mkdir yun11
cd yun11
#在当前目录初始化本地Git仓库(生成.git隐藏目录)
git init
touch README.md
git add README.md
git commit -m "first commit"
#关联远程仓库
git remote add origin https://gitee.com/kxmr/yun11.git
git push -u origin "master"
touch.exe test1.txt
vim test1.txt
#将当前目录所有修改/新增文件添加到暂存区
git add .
#将暂存区内容提交到本地仓库
git commit -m "touch test1.txt"
#查看提交历史(详细格式)
git log
#推送本地当前分支到远程对应分支
git push
ubuntu上操作步骤
1.ubuntu安装Git
apt install git
若安装有问题
正在等待缓存锁:无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 14098(unattended-upgr)持有
1.终止进程(使用提示中的进程ID 14098)
kill 14098
如果进程仍未终止,使用强制终止
kill -9 14098
2.删除前端锁文件
rm /var/lib/dpkg/lock-frontend
3.删除dpkg锁文件
rm /var/lib/dpkg/lock
4.重新配置dpkg
dpkg --configure -a
5.再次尝试安装
apt install git
2.ubuntu同化
点击“克隆/下载”
↓
下载代码请复制以下命令到终端执行
↓
git clone https://gitee.com/kxmr/yun11.git(ubuntu上执行)
基础命令
1.创建git仓库
mkdir test
cd test
2.初始化仓库,.git目录,记录配置与每次提交的内容
git init
3.将一个文件添加到缓存区
git add 文件名
4.将所有文件的修改,添加到缓存区
git add .
5.将缓存区内容提交到本地仓库
git commit -m “注释信息”
6.同步本地仓库到远程仓库
git push
7.第一次同步,需要远程地址(创建远程仓库时,自动生成地址)
仓库提交类型https/ssh
类型仓库:https提交方式
git remote add origin https://gitee.com/zj1007/test2.git
类型仓库:ssh提交方式
git remote add origin git@gitee.com:zj1007/test2.git
8.选择提交的分支
git push -u origin "master”
9.克隆仓库(ssh):git clone git 地址
git clone git@gitee.com:kxmr/yun11.git
1.拉取最新版本
git pull
多人协作
gitee→管理→仓库成员管理→邀请用户
多分支管理
查看分支
git branch
创建分支
git branch dev
切换分支
git checkout dev
合并分支
git checkout dev
git merge dev
回滚(后悔药)
查看提交记录
git log
回滚到某次提交的内容
git reset --soft 哈希值:软回滚,保留暂存区和工作区数据,用于下次提交
git reset --hard 哈希值:硬回滚,清除暂存区和工作区数据,版本回退
git reset --mixed 哈希值:混合回滚,清空缓存区,保留工作区
git reflog 文件名 撤销工作区修改(为暂存的文件)