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

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

相关文章:

  • OS面试篇
  • SFP与Unsloth:大模型微调技术全解析
  • Lock锁
  • Java集合操作:如何避免并发修改异常
  • ASPICE认证 vs. 其他标准:汽车软件开发的最优选择
  • 互联网大厂Java求职面试:Spring Cloud微服务架构设计中的挑战与解决方案
  • 新能源汽车产业链图谱分析
  • 汽车免拆诊断案例 | 2020款奔驰E300L车发动机故障灯偶尔异常点亮
  • C 语言学习笔记(指针4)
  • MySQL 8.0 OCP 英文题库解析(八)
  • Oracle 的 ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH 命令
  • Ubuntu16.04 Qt的安装与卸载
  • 模型压缩,AWQ与GPTQ量化方法分析
  • AG32VH 系列应用指南
  • 基于 ARIMA 与贝叶斯回归的时间序列分析:结合趋势季节性与不确定性量化(附 PyTorch 变分贝叶斯实现)
  • 线性回归原理推导与应用(八):逻辑回归二分类乳腺癌数据分类
  • BUCK电路利用状态空间平均法和开关周期平均法推导
  • 大模型 Agent 就是文字艺术吗?
  • 3par persona设置错误,linux I/O持续报错
  • 【golang】能否在遍历map的同时删除元素
  • 如何用WordPress建小说站/cps推广接单平台
  • 网站如何做播放线路/深圳seo公司
  • 宁波seo网站服务/软文代发代理
  • WordPress做漫画网站/在线收录
  • 网站建设系/企业网站seo
  • 视频多的网站建设/seo技术 快速网站排名