当前位置: 首页 > news >正文

git分布式控制工具详解

1. 版本控制器的方式

1.1 集中式版本控制工具

  • 特点
    • 版本库集中存放在中央服务器
    • 必须联网才能工作(局域网/互联网)
    • 个人修改后提交到中央版本库
  • 举例:SVN、CVS

1.2 分布式版本控制工具

  • 特点
    • 无"中央服务器",每个电脑都是完整版本库
    • 工作时不需联网
    • 多人协作通过互相推送修改
  • 举例:Git

2. Git 安装与配置

2.1 Git 环境配置

2.1.1 下载与安装
  • 下载地址:https://git-scm.com/download
  • 安装验证
    • 右键菜单出现以下两项即安装成功:
      • Git GUI:图形界面工具
      • Git Bash:命令行工具

3. Git 基本配置与命令

3.1 Git 基本配置

3.1.1 基本配置
# 设置用户信息
git config --global user.name "yourname"
git config --global user.email "email@example.com"

# 查看配置信息
git config --global user.name
git config --global user.email
3.1.2 在用户目录配置操作别名(可选)
  1. 创建配置文件:
touch ~/.bashrc
  1. 添加别名配置:
# 输出git提交日志
alias git-log='git log --pretty=oneline --all --graph --abbrev-commit'
# 输出当前目录文件信息
alias ll='ls -al'
# 暂存并提交所有修改
alias commit='git commit -a'
  1. 使配置生效:
source ~/.bashrc
3.1.3 解决GitBash乱码
git config --global core.quotepath false

${git_home}/etc/bash.bashrc文件末尾添加:

export LANG="zh_CN.UTF-8"
export LC_ALL="zh_CN.UTF-8"

3.2 获取本地仓库

  1. 创建空目录并进入
  2. 执行初始化命令:
git init
  1. 成功后会生成隐藏的.git目录

3.3 基础操作指令

3.3.1 查看修改状态
git status
3.3.2 添加工作区到暂存区
git add <文件名>  # 添加单个文件
git add .        # 添加所有修改
3.3.3 提交暂存区到本地仓库
git commit -m "提交说明"
3.3.4 查看提交日志
git log
git log --oneline --all --graph
3.3.5 版本回退
git reset --hard <commitID>
git reflog  # 查看所有操作记录
3.3.6 添加忽略文件
  1. 创建忽略文件:
touch .gitignore
  1. 编辑文件内容(如*.log

3.4 分支管理

3.4.1 查看分支
git branch
3.4.2 创建分支
git branch <分支名>
3.4.3 切换分支
git checkout <分支名>
git checkout -b <新分支名>  # 创建并切换
3.4.4 合并分支
git merge <要合并的分支名>
3.4.5 删除分支
git branch -d <分支名>  # 安全删除
git branch -D <分支名>  # 强制删除
3.4.6 解决冲突
  1. 手动解决文件冲突
  2. 添加解决后的文件:
git add <文件名>
  1. 提交更改:
git commit -m "解决冲突"

3.5 分支使用规范

  • master:生产环境分支
  • develop:主要开发分支
  • feature/xxx:功能开发分支
  • hotfix/xxx:紧急修复分支
  • test:测试分支
  • pre:预发布分支

分支操作示例

# 创建并切换到dev01分支
git branch dev01
git checkout dev01

# 在dev01分支提交更改
git add .
git commit -m "add file02 on dev"

# 切换回master并合并
git checkout master
git merge dev01

# 删除dev01分支
git branch -d dev01
http://www.dtcms.com/a/106980.html

相关文章:

  • 深入解析使用Python通过STOMP协议接收ActiveMQ消息
  • 数据库6(数据库指令)
  • Django 使用 matplotlib 遇到 RuntimeError: main thread is not in main loop 解决办法
  • Linux系统程序设计:从入门到高级Day01
  • NHANES指标推荐:HCHR
  • 区间DP总结
  • 4.0/Q2,Charls最新文章解读
  • 2025年渗透测试面试题总结-某腾某讯-技术安全实习生升级(题目+回答)
  • Spring Boot 3.4.3 基于 OpenFeign 实现声明式 HTTP 接口调用
  • LabVIEW高效溢流阀测试系统
  • 严重BUG修复及部分体验问题优化
  • 【5天学会TS】打卡学习Typescript的第一天
  • Markdown常用语法
  • 合合信息大模型加速器2.0:构建智能知识库,助力大模型减少“幻觉”
  • 如何避免内存泄漏,尤其是在React中
  • 大数据(4.5)Hive聚合函数深度解析:从基础统计到多维聚合的12个生产级技巧
  • 5G_WiFi_CE_射频输出功率、发射功率控制(TPC)和功率密度测试
  • VideoToolbox 实战:H264 编码 Demo 的高效实现
  • CSS 高级用法
  • javaSE知识梳理(一)
  • 八款内网电脑监控软件:探寻适配企业需求的数字化监管方案组合
  • 银河麒麟V10 aarch64架构安装mysql教程
  • 应用密码零改造方案一
  • DLML正则化
  • 【前端知识】Vue当中目录别名@的使用
  • leetcode515 在每个树行中找最大值
  • mac air m系列arm架构芯片安装虚拟机 UTM+debian 浏览器firefox和chrome
  • Bugku-贝斯手
  • 【Linux篇】自主Shell命令行解释器
  • Spring 核心技术解析【纯干货版】- XVIII:Spring 网络模块 Spring-WebSocket 模块精讲