IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> Git版本控制基本使用知识整理 -> 正文阅读

[开发工具]Git版本控制基本使用知识整理

一、版本控制

1. 版本控制

用于管理多人协同开发项目的技术。

2. 版本控制软件/系统

用来记录文件变化,便于查询特定版本修订情况的系统。

3. 版本控制分类

  • 本地版本控制:使用软件记录文件不同版本。

    【优点】提高工作效率,降低手工管理的出错率。
    【缺点】单机运行,不支持多人协作开发;若版本数据库故障所有历史更新记录丢失。
  • 集中版本控制(例如SVN):基于【客户端-服务器】的运行模式,服务器保存文件所有更新记录,客户端只保留最新的文件版本

    【优点】联网运行,支持多人协作开发。
    【缺点】不支持离线提交版本更新;中心服务器崩溃所有人无法正常工作;若版本数据库故障所有历史更新记录丢失。
  • 分布式版本控制(例如Git):基于【客户端-服务器】的运行模式,服务器保存文件所有更新记录,客户端是服务器的完整备份

    【优点】联网运行,支持多人协作开发;断网后支持离线本地提交版本更新;若服务器故障,可使用任何一个客户端的备份进行恢复。
    【缺点】以空间换时间,占用磁盘空间大。

二、Git基本组成

1. Git特性

  • 直接记录快照,而非差异比较。版本切换快,占用磁盘空间大。
  • 近乎所有操作都是本地执行。联网后将本地修改记录同步到云端服务器。

2. Git四个区域

  • 工作区(Workspace):存放项目代码的区域。
  • 暂存区(Stage):暂时存放已修改的文件的区域,保存即将提交的文件列表信息。
  • 本地仓库(History/Repository):存放提交的所有版本的数据。其中HEAD指向最新版本。
  • 远程仓库(Remote):托管代码的服务器,理解为一台远程数据交换的电脑。

3. Git三种状态

  • 已修改(modified)
  • 已暂存(staged)
  • 已提交(committed)

4. Git工作流程

1)在工作区中添加、修改文件;
2)将需要进行版本管理的文件放入暂存区
3)将暂存区的文件提交到Git仓库

三、Git基本命令

1. 配置用户信息

Git需要记录谁对项目进行了操作。配置信息被写入全局配置文件.gitconfig中,配置一次即可永久生效。

# 设置用户名
git config --global user.name "Your-username"
# 设置邮箱地址
git config --global user.email "Your-email"
# 查看所有全局配置
git config --list --global
# 查看指定配置项
git config user.name
git config user.email

2. 查看帮助信息

# 打开指定命令config的帮助手册
git help config
# 获取指定命令config的快速参考
git config -h

3. 建立Git仓库

  • 将未进行版本控制的本地目录转换为Git仓库
    在指定位置执行,即可在此目录位置创建一个.git隐藏目录,.git隐藏目录即当前项目的Gi t仓库,里面包含了初始的Git仓库必要组成部分。
git init
  • 从远程服务器克隆一个已存在的Git仓库
git clone url

4. 查看工作区文件状态

# 查看工作区文件状态
git status
# 以精简方式查看工作区文件状态
git status -s
git status --short
# 精简方式下的符号含义
?? untracked
M  modified
A  added
D  deleted
R  renamed
C  copied
U  updated but unmerged

其中,符号红色表示未暂存;绿色表示已暂存。

5. 文件操作

  • 跟踪文件/暂存文件
# 跟踪/暂存文件index.html
git add index.html
# 跟踪/暂存所有文件
git add .
  • 提交文件【当工作区文件提交后,文件处于unmodified状态】
# 提交暂存区文件index.html
git commit -m "新建了index.html"
# 跳过暂存区,将工作区文件直接提交到Git仓库
git commit -a -m "新建了index.html"
  • 撤销对文件的修改,用Git仓库中保存的文件覆盖当前工作区指定文件【不常用】
git checkout -- index.html
  • 取消暂存的文件【不常用】
git reset HEAD
  • 移除文件
# 从工作区和Git仓库同时移除index.html
git rm -f index.html
# 只从Git仓库移除index.html
git rm --cashed index.html
  • 忽略文件【不希望出现在未跟踪文件列表的文件,通过创建.gitignore配置文件设置】
# 举例:
# 忽略所有.a文件
*.a
# 但跟踪所有lib.a
!lib.a
# 忽略任何目录下名为build的文件夹
build/
# 只忽略当前目录下名为TODO的文件
/TODO
# 忽略doc目录及其所有子目录下的.pdf文件
doc/**/*.pdf
  • 查看提交历史
git log
# 【注意】在旧版本中查看
git reflog
# 只展示最近两条
git log -2
# 在一行上展示
git log --pretty=oneline
# 在一行上展示,并按自定义格式输出
# %h简写哈希值; %an作者; %ar多久之前修改; %s提交说明文字
git log --pretty=format:"%h | %an | %ar | %s"
  • 回退到历史指定版本
git reset --hard <CommitID>

四、Git远程仓库操作(以github为例)

1. 开源许可协议

为了限制使用者的使用范围和保护作者的权利,每个开源项目都应该遵守开源许可协议。
5种常见的开源许可协议:

2. 开源项目托管平台

用于免费存放开源项目源代码的网站。

  • Github:全球最牛的开源项目托管平台。
  • Gitlab:对代码私有性支持较好,企业用户较多。
  • Gitee:码云,国产的开源项目托管平台。访问速度快、纯中文界面、使用友好。

3. 提交到远程仓库

  • HTTP:零配置,但每次访问都需要输入用户名和密码。
# 将本地仓库和远程仓库进行关联,并把远程仓库命名为origin
git remote add origin 仓库的http-url
# 将本地仓库中的内容推送到远程仓库
git push -u origin master
  • SSH:需要配置SSH Key,配置一次之后都不需要用户名和密码。【实际开发时常用】

SSH Key:实现本地仓库和Github之间免登录的加密数据传输。由两部分组成:

# 输入以下命令,连敲三次回车,生成id_rsa.pub文件,将文件中的内容配置到Github
ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
# 验证是否配置成功
ssh -T git@github.com
# 将本地仓库和远程仓库进行关联,并把远程仓库命名为origin
git remote add origin 仓库的ssh-url
# 将本地仓库中的内容推送到远程仓库
git push -u origin master

4. 克隆远程仓库

git clone url

五、Git分支

1. Git分支

多人协作开发时,为了防止相互干扰,提高协同开发的体验,每个开发者都基于分支进行项目开发。

2. 分支分类

  • 主分支master:在初始化本地Git仓库时默认创建主分支,用来保存和记录整个项目已完成的功能代码。因此,不允许程序员直接在主分支上修改代码。
  • 功能分支:专门用来开发新功能的分支,临时从主分支分叉出去,开发完成后再合并到主分支上。

3. 分支操作

  • 查看分支【带星号*的表示当前所处分支】
git branch
  • 添加分支
# 添加新分支login并停留在当前分支。【新分支中代码与当前分支完全相同】
git branch login
# 添加新分支login并切换到新分支。
git checkout -b login
  • 切换分支
# 切换到login分支。
git checkout login
  • 合并分支【存在冲突的分支合并需要手动解决冲突后再提交合并】
# 将login分支合并到当前分支
git merge login
  • 删除分支
# 删除login分支
git branch -d login
  • 远程分支相关操作【远程仓库默认叫origin】

1)将本地分支推送到远程仓库

# 首次
# 本地分支login推送到远程仓库,命名为in
git push -u orgin login:in
# 本地分支login推送到远程仓库,命名相同
git push -u orgin login
# 之后
git pull

2)查看远程仓库所有分支

git remote show origin

3)跟踪分支,将远程仓库分支下载到本地仓库

# 远程分支in下载到本地仓库,命名为login
git checkout -b login orgin/in

4)将远程仓库代码更新到本地对应分支

git pull

5)删除远程仓库指定分支

# 删除远程仓库的in分支
git push origin --delete in
  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2022-03-22 20:48:22  更:2022-03-22 20:49:30 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 4:43:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码