Git全流程操作指南

Git全流程操作指南

一、Git 环境配置

1. 安装 Git
  • Windows:下载 Git for Windows

  • macOSbrew install git

  • Linux

    sudo apt-get update && sudo apt-get install git  # Debian/Ubuntu
    sudo yum install git                           # CentOS/RedHat
    
2. 配置用户信息
git config --global user.name "Your Name"
git config --global user.email "your.email@example.com"
git config --global core.editor "code --wait"    # 设置 VSCode 为默认编辑器
3. 查看配置
git config --list

二、本地仓库操作

1. 初始化仓库
mkdir my-project
cd my-project
git init
2. 文件状态管理
操作命令说明
查看状态git status显示工作区和暂存区状态
添加文件到暂存区git add file.txt暂存单个文件
添加所有修改git add .暂存所有更改(包括新增文件)
取消暂存git reset HEAD file.txt从暂存区移除文件
放弃工作区修改git checkout -- file.txt撤销未暂存的修改
3. 提交代码
git commit -m "Add initial project files"
git commit --amend              # 修改最后一次提交(未推送时)
4. 查看历史记录
git log                         # 完整提交历史
git log --oneline               # 简洁历史
git log -p                      # 显示变更内容
git log --graph                 # 图形化分支历史

三、远程仓库操作

1. 关联远程仓库
git remote add origin https://github.com/username/repo.git
git remote -v                   # 查看远程仓库
2. 推送代码
git push -u origin main         # 首次推送并设置上游分支
git push                        # 后续推送
3. 拉取代码
git pull origin main            # 拉取并合并远程代码
git fetch origin                # 仅获取远程更新(不合并)
4. 克隆仓库
git clone https://github.com/username/repo.git
git clone --depth 1 https://github.com/username/repo.git  # 浅克隆(仅最新提交)

四、分支管理

1. 分支操作
操作命令说明
查看分支git branch本地分支列表
创建分支git branch feature/login创建新分支
切换分支git checkout feature/login切换到指定分支
创建并切换分支git checkout -b feature/login一步完成创建+切换
删除分支git branch -d feature/login删除已合并的分支
强制删除分支git branch -D feature/login删除未合并的分支
2. 合并与变基
git checkout main
git merge feature/login         # 合并分支到当前分支
git rebase main                 # 将当前分支变基到 main
3. 解决冲突
  1. 打开冲突文件,标记为 <<<<<<< HEAD>>>>>>> branch 的区域
  2. 手动编辑文件,保留需要的代码
  3. 标记冲突已解决:
git add resolved-file.txt
git commit -m "Resolve merge conflict"

五、团队协作流程

1. 典型工作流
  1. main 分支拉取最新代码:

    git checkout main
    git pull origin main
    
  2. 创建新功能分支:

    git checkout -b feature/new-module
    
  3. 开发并提交代码:

    git add .
    git commit -m "Implement new module"
    
  4. 推送分支到远程:

    git push -u origin feature/new-module
    
  5. 创建 Pull Request(GitHub)或 Merge Request(GitLab)

  6. 通过 Code Review 后合并到 main 分支

2. 同步上游更改
git checkout feature/new-module
git fetch origin
git rebase origin/main          # 变基到最新 main 分支

六、高级操作

1. 暂存临时修改
git stash                       # 保存当前工作区
git stash list                  # 查看暂存列表
git stash pop                   # 恢复并删除最近一次暂存
2. 撤销操作
场景命令
撤销未提交的修改git checkout -- file.txt
撤销暂存区的文件git reset HEAD file.txt
回退到某个提交git reset --hard commit_id
创建撤销提交git revert commit_id
3. 标签管理
git tag v1.0.0                  # 创建轻量标签
git tag -a v1.0.0 -m "Release version 1.0.0"  # 创建附注标签
git push origin --tags          # 推送所有标签

七、常见问题解决

1. 提交错误分支
git reset HEAD~1                # 撤销最后一次提交(保留修改)
git checkout correct-branch
git add . && git commit -m "Fix commit to correct branch"
2. 恢复误删分支
git reflog                      # 查找删除前的 commit ID
git checkout -b recovered-branch commit_id
3. 大文件处理
# 使用 Git LFS
git lfs install
git lfs track "*.psd"
git add .gitattributes
git add file.psd
git commit -m "Add design file with LFS"

八、可视化工具推荐

  • 命令行增强lazygittig
  • 图形化工具
    • GitHub Desktop
    • Sourcetree
    • GitKraken

九、常用命令速查表

操作命令
初始化仓库git init
克隆仓库git clone <url>
查看状态git status
添加文件git add <file>
提交更改git commit -m "message"
推送分支git push origin <branch>
拉取更新git pull origin <branch>
合并分支git merge <branch>
变基分支git rebase <branch>
查看日志git log --oneline --graph

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/web/81985.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

AI与软件工程结合的未来三年发展路径分析

基于对数字化、制造业、工业、零售业等行业的系统调研&#xff0c;以及微软、谷歌、阿里、华为等大厂的实践案例&#xff0c;我们可以预见未来三年AI与软件工程结合将呈现以下发展路径和趋势。 一、技术应用维度 1. AI辅助编程工具全面普及 未来三年&#xff0c;AI辅助编程工…

tiktoken学习

1.tiktoken是OpenAI编写的进行高效分词操作的库文件。 2.操作过程&#xff1a; enc tiktoken.get_encoding("gpt2") train_ids enc.encode_ordinary(train_data) val_ids enc.encode_ordinary(val_data) 以这段代码为例&#xff0c;get_encoding是创建了一个En…

DeepSeek 赋能文化遗产数字化修复:AI 重构千年文明密码

目录 一、引言二、文化遗产数字化修复概述2.1 文化遗产数字化修复的意义2.2 传统数字化修复方法与局限 三、DeepSeek 技术剖析3.1 DeepSeek 技术原理与核心优势3.2 相比其他技术的独特之处 四、DeepSeek 在文化遗产数字化修复中的应用4.1 破损文物的智能修复4.2 文化遗产的虚拟…

leetcode题解513:找树左下角的值(递归中的回溯处理)!

一、题目内容&#xff1a; 题目要求找到一个二叉树的最底层最左边节点的值。具体来说&#xff0c;我们需要从根节点开始遍历二叉 树&#xff0c;找到最深的那层中的最左边的节点&#xff0c;并返回该节点的值。因为要先找到最底层左侧的值&#xff0c;所以我们选择遍历顺序一定…

C#面试问题41-60

41. What is the Singleton design pattern? Singleton is a class that only allows creating a single instance of itselt. 单例设计模式是一个类&#xff0c;它只允许创建自己的单个实例。 构造函数防止他在单例类以外的地方被调用。 使用情景&#xff1a;need a sing…

笔记思考法

掌握麦肯锡流笔记术&#xff0c;对大家来说有以下几种好处: 1) 可以将自己的思考可视化&#xff0c;使之变得更加清晰 2) 避免无用功 3) 经常能够提出有创意的想法 4) 遇到问题时能够及时找到解决办法 5) 不管面对什么情况都能够找出真正有效的解决办法 为什么仅仅通过改变使用…

Rust 学习笔记:关于闭包的练习题

Rust 学习笔记&#xff1a;关于闭包的练习题 Rust 学习笔记&#xff1a;关于闭包的练习题问题 1问题 2以下程序能否通过编译&#xff1f;若能&#xff0c;输出是&#xff1f;以下程序能否通过编译&#xff1f;若能&#xff0c;输出是&#xff1f;考虑该 API&#xff0c;空白处填…

(一)微服务(垂直AP/分布式缓存/装饰器Pattern)

文章目录 项目地址一、创建第一个垂直API1.1 创建Common层1. ICommand接口2. IQuery接口 1.2 创建API1. 实体2. Handler3. endpoint 1.3 使用Marten作为ORM 二、Redis缓存2.1 使用缓存装饰器1. 创建装饰器2. 注册装饰器 2.2 创建docker-compose1. docker-compose2. docker-comp…

Spring AI系列之使用 Spring AI 转录音频文件(基于OpenAI)

概述 企业常常需要从各种类型的音频内容中提取有价值的数据&#xff0c;例如&#xff1a;将客户支持通话转录用于情感分析、为视频生成字幕&#xff0c;或整理会议纪要。然而&#xff0c;手动转录音频文件既耗时又昂贵。 为了解决这一问题&#xff0c;OpenAI 提供了强大的语…

室内VR全景助力房产营销及装修

在当今的地产行业&#xff0c;VR全景已成为不可或缺的应用工具。从地产直播到楼市VR地图&#xff0c;从效果图到水电家装施工记录&#xff0c;整个地产行业的上下游生态中&#xff0c;云VR全景的身影无处不在。本文将探讨VR全景在房产营销及装修领域的应用&#xff0c;并介绍众…

Sentinel限流熔断机制实战

1、核心概念 1.1、流量控制 流量控制是为了 防止系统被过多的请求压垮&#xff0c;确保资源合理分配并保持服务的可用性&#xff0c;比如对请求数量的限制。 流量控制的 3 个主要优势&#xff1a; 防止过载&#xff1a;当瞬间涌入的请求量超出系统处理能力时&#xff0c;会…

深度解析 torch.mean 的替代方案

torch.mean 是什么意思 代码效果解释 segment_vector = torch.mean(segment_embedding, dim=1) # [1, hidden_dim] 这行代码的作用是在指定维度上对张量 segment_embedding 求平均值,实现类似平均池化的效果。 具体来说,dim=1 表示沿着索引为1的维度进行操作。假设 segment…

Paraformer语音模型:一种语音模型加速方法

随着智能语音技术的普及&#xff0c;语音识别&#xff08;ASR&#xff09;、语音合成&#xff08;TTS&#xff09;、声纹识别等应用场景对模型推理效率提出了极高要求&#xff0c;本文介绍将Paraformer语音模型从预训练模型导出为ONNX格式&#xff0c;并使用ONNX Runtime进行推…

本地部署FreeGPT+内网穿透公网远程访问,搞定ChatGPT外网访问难题

‌FreeGPT‌是一个基于GPT 3.5/4的ChatGPT聊天网页用户界面&#xff0c;提供了一个开放的聊天界面&#xff0c;开箱即用‌。ChatGPT是非常热门的&#xff0c;但访问体验一直不太理想。为了解决这一问题&#xff0c;出现了各类方法和工具&#xff0c;其中FreeGPT是一款非常实用的…

ElasticSearch迁移至openGauss

Elasticsearch 作为一种高效的全文搜索引擎&#xff0c;广泛应用于实时搜索、日志分析等场景。而 openGauss&#xff0c;作为一款企业级关系型数据库&#xff0c;强调事务处理与数据一致性。那么&#xff0c;当这两者的应用场景和技术架构发生交集时&#xff0c;如何实现它们之…

品优购项目(HTML\CSS)

项目效果可访问 http://zhousunyu.3vdo.club 查看 主页 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><titl…

因泰立科技:镭眸T51激光雷达,打造智能门控新生态

在高端门控行业&#xff0c;安全与效率是永恒的追求。如今&#xff0c;随着科技的飞速发展&#xff0c;激光雷达与TOF相机技术的融合&#xff0c;为门控系统带来了前所未有的智能感知能力&#xff0c;开启了精准守护的新时代。因泰立科技的镭眸T51激光雷达&#xff0c;作为这一…

MyBatisPlus--快速入门

MyBatisPlus介绍 从名字中就可以感觉到MybatisPlus与MyBatis之间的渊源&#xff0c;而MyBatis是一个非常流行的持久层框架&#xff0c;主要来做数据库的增删改查&#xff0c;而MyBatisPlus这种命名方式让人不得不往MyBatis的升级版去联想&#xff0c;事实也确实如此&#xff0…

redis持久化策略

RDB 是通过生成数据快照来实现持久化的&#xff0c;相当于给内存中的数据拍一张"照片"保存到磁盘上。AOF 记录所有写操作命令&#xff0c;以Redis协议格式追加到文件末尾。 RDB 在满足特定条件时触发内存快照&#xff0c;生成新的RDB文件替换旧文件 AOF 先写入内…

Spring Boot中使用@JsonAnyGetter和@JsonAnySetter处理动态JSON属性

Spring Boot 中使用 @JsonAnyGetter 和 @JsonAnySetter 处理动态 JSON 属性 在实际的后端开发中,尤其是使用 Spring Boot 构建 API 时,我们经常会遇到需要处理动态 JSON 属性的场景。例如,前端传递过来的 JSON 数据结构不固定,或者业务需求变更频繁,导致实体类无法预先定…