Git全流程操作指南

Git全流程操作指南

一、Git 环境配置

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

  • macOSbrew install git

  • Linux

    cpp 复制代码
    sudo apt-get update && sudo apt-get install git  # Debian/Ubuntu
    sudo yum install git                           # CentOS/RedHat
2. 配置用户信息
cpp 复制代码
git config --global user.name "Your Name"
git config --global user.email "[email protected]"
git config --global core.editor "code --wait"    # 设置 VSCode 为默认编辑器
3. 查看配置
cpp 复制代码
git config --list

二、本地仓库操作

1. 初始化仓库
cpp 复制代码
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. 提交代码
cpp 复制代码
git commit -m "Add initial project files"
git commit --amend              # 修改最后一次提交(未推送时)
4. 查看历史记录
cpp 复制代码
git log                         # 完整提交历史
git log --oneline               # 简洁历史
git log -p                      # 显示变更内容
git log --graph                 # 图形化分支历史

三、远程仓库操作

1. 关联远程仓库
cpp 复制代码
git remote add origin https://github.com/username/repo.git
git remote -v                   # 查看远程仓库
2. 推送代码
cpp 复制代码
git push -u origin main         # 首次推送并设置上游分支
git push                        # 后续推送
3. 拉取代码
cpp 复制代码
git pull origin main            # 拉取并合并远程代码
git fetch origin                # 仅获取远程更新(不合并)
4. 克隆仓库
cpp 复制代码
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. 合并与变基
cpp 复制代码
git checkout main
git merge feature/login         # 合并分支到当前分支
git rebase main                 # 将当前分支变基到 main
3. 解决冲突
  1. 打开冲突文件,标记为 <<<<<<< HEAD>>>>>>> branch 的区域
  2. 手动编辑文件,保留需要的代码
  3. 标记冲突已解决:
cpp 复制代码
git add resolved-file.txt
git commit -m "Resolve merge conflict"

五、团队协作流程

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

    cpp 复制代码
    git checkout main
    git pull origin main
  2. 创建新功能分支:

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

    cpp 复制代码
    git add .
    git commit -m "Implement new module"
  4. 推送分支到远程:

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

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

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

六、高级操作

1. 暂存临时修改
cpp 复制代码
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. 标签管理
cpp 复制代码
git tag v1.0.0                  # 创建轻量标签
git tag -a v1.0.0 -m "Release version 1.0.0"  # 创建附注标签
git push origin --tags          # 推送所有标签

七、常见问题解决

1. 提交错误分支
cpp 复制代码
git reset HEAD~1                # 撤销最后一次提交(保留修改)
git checkout correct-branch
git add . && git commit -m "Fix commit to correct branch"
2. 恢复误删分支
cpp 复制代码
git reflog                      # 查找删除前的 commit ID
git checkout -b recovered-branch commit_id
3. 大文件处理
cpp 复制代码
# 使用 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
相关推荐
2401_859049082 小时前
Git使用
arm开发·git·stm32·单片机·mcu·算法
stars4 小时前
git常用操作命令
git
Se_ren_di_pity11 小时前
git入门笔记
git
omage12 小时前
如何将带有LFS对象的git仓库推送到gitlab
git·gitlab·lfs
Linux运维技术栈13 小时前
从版本控制到协同开发:深度解析 Git、SVN 及现代工具链
git·svn
wusam13 小时前
Linux系统管理与编程23:巧用git资源一键部署LAMP
linux·运维·git·shell·lamp
不爱学英文的码字机器16 小时前
[Git] 如何进行版本回退
大数据·git·elasticsearch
白开水不加冰1 天前
git初始化及操作指南
git
PyAIGCMaster1 天前
vscode git push 记录
ide·git·vscode