Git 日常操作完全指南:提交、冲突、分支、账户配置一站式教程

本文整理开发工作中全套 Git 实战命令,包含标准提交流程、代码冲突解决、分支管理、文件忽略、报错排错、提交账号修改等高频场景,新手可直接复制命令使用,适配多人团队协作开发。

目录

一、基础工作流程(常规开发提交流程)

[1. 开发前拉取远程最新代码](#1. 开发前拉取远程最新代码)

[2. 查看文件状态](#2. 查看文件状态)

[3. 将文件加入暂存区](#3. 将文件加入暂存区)

[4. 提交到本地仓库](#4. 提交到本地仓库)

[5. 推送代码到远程仓库](#5. 推送代码到远程仓库)

二、代码冲突完整解决方案

操作步骤

1.查看冲突文件

2.手动编辑冲突文件

3.标记冲突已解决

4.继续变基流程

5.所有冲突处理完毕,正常推送:

三、高频场景命令(撤销、回退、文件转移)

[1. 已修改未暂存:撤销本地改动](#1. 已修改未暂存:撤销本地改动)

[2. 已暂存未提交:撤销暂存](#2. 已暂存未提交:撤销暂存)

[3. 修改最后一次提交备注](#3. 修改最后一次提交备注)

[4. 补充遗漏文件到上一次提交](#4. 补充遗漏文件到上一次提交)

[5. 已提交未推送:撤销本次提交(保留代码)](#5. 已提交未推送:撤销本次提交(保留代码))

[6. 彻底丢弃本地所有修改(高危操作)](#6. 彻底丢弃本地所有修改(高危操作))

[7. 临时储藏代码(切换分支专用)](#7. 临时储藏代码(切换分支专用))

[8. 分支文件重命名 / 删除冲突](#8. 分支文件重命名 / 删除冲突)

[9. 错误分支代码迁移](#9. 错误分支代码迁移)

四、分支管理全套命令

[1. 查看分支](#1. 查看分支)

[3. 本地分支关联远程分支](#3. 本地分支关联远程分支)

[4. 删除分支](#4. 删除分支)

[5. 分支合并](#5. 分支合并)

[五、.gitignore 忽略文件配置](#五、.gitignore 忽略文件配置)

通用模板

六、推送报错原因与解决方案

强制推送(谨慎使用)

七、团队协作安全规范

[八、修改 Git 提交账户信息](#八、修改 Git 提交账户信息)

[1. 仅修改当前项目仓库账号](#1. 仅修改当前项目仓库账号)

[2. 修改全局账号(所有项目生效)](#2. 修改全局账号(所有项目生效))

[3. 查看当前账号信息](#3. 查看当前账号信息)

[4. 修改最近一次提交的作者信息](#4. 修改最近一次提交的作者信息)

[5. 修改多条历史提交作者(高危)](#5. 修改多条历史提交作者(高危))

[6. 常见问题说明](#6. 常见问题说明)

九、极简速查命令(日常复制即用)


一、基础工作流程(常规开发提交流程)

日常开发统一遵循:拉取最新代码 → 修改文件 → 暂存 → 提交 → 推送

1. 开发前拉取远程最新代码

每次开始编码、修复 bug 前,必须先拉取远程代码,提前规避冲突。

复制代码
git pull origin main --rebase
  • origin:默认远程仓库名
  • main:目标分支名,根据实际分支替换
  • --rebase:变基拉取,保证提交历史线性整洁

提示 Already up to date 代表本地已是最新版本,可以直接开发。

2. 查看文件状态

查看当前目录下新增、修改、删除的文件:

复制代码
git status

3. 将文件加入暂存区

复制代码
git add 文件名          # 单独添加一个文件
git add .               # 添加当前目录所有改动文件

4. 提交到本地仓库

提交必须填写清晰备注,方便版本追溯:

复制代码
git commit -m "本次修改描述"

示例:

复制代码
git commit -m "feat: 新增图像推理功能"

5. 推送代码到远程仓库

分支已关联远程时,直接简写:

复制代码
git push

未关联分支,指定远程与分支推送:

复制代码
git push origin main

二、代码冲突完整解决方案

执行 git pull / git rebase 出现 CONFLICT 即为代码冲突,原因:本地与远程修改了同一文件同一位置

操作步骤

1.查看冲突文件

复制代码
git status

标红文件为冲突文件。

2.手动编辑冲突文件

打开文件,会出现 Git 自动生成的冲突标记:

复制代码
<<<<<<< HEAD
远程仓库代码
=======
本地修改代码
>>>>>>> 提交哈希值

保留最终需要的代码(选远程、选本地、合并均可)

删除三行冲突标记,保存文件.

3.标记冲突已解决

复制代码
git add 冲突文件名

4.继续变基流程

复制代码
git rebase --continue
  • 多次冲突:重复「编辑文件 → add → continue」

放弃本次合并:

复制代码
git rebase --abort

5.所有冲突处理完毕,正常推送:

复制代码
git push

三、高频场景命令(撤销、回退、文件转移)

1. 已修改未暂存:撤销本地改动

复制代码
git checkout -- 文件名
# 撤销所有文件改动
git checkout -- .

2. 已暂存未提交:撤销暂存

复制代码
git reset 文件名
# 撤销全部暂存
git reset

3. 修改最后一次提交备注

复制代码
  git commit --amend -m "新备注"

4. 补充遗漏文件到上一次提交

复制代码
  git add 遗漏文件
  git commit --amend --no-edit

5. 已提交未推送:撤销本次提交(保留代码)

复制代码
  git reset --soft HEAD~1

6. 彻底丢弃本地所有修改(高危操作)

强制同步为远程最新版本,操作不可逆
*

复制代码
  git fetch origin
  git reset --hard origin/main
  # 同时删除未跟踪文件/文件夹
  git clean -fd

7. 临时储藏代码(切换分支专用)

临时切分支、拉代码,不想提交当前改动:
*

复制代码
  # 储藏所有本地改动
  git stash
  # 恢复储藏的代码
  git stash pop

8. 分支文件重命名 / 删除冲突

日志、图片、JSON 等输出文件批量冲突处理:
*

复制代码
  # 采用远程版本(推荐)
  git checkout --theirs 文件夹路径/*
  # 采用本地版本
  git checkout --ours 文件夹路径/*

9. 错误分支代码迁移

在错误分支写完代码,迁移到正确分支:
*

复制代码
  git stash
  git checkout 正确分支
  git stash pop

四、分支管理全套命令

1. 查看分支

复制代码
  git branch          # 查看本地分支
  git branch -r       # 查看远程分支
  git branch -a       # 查看所有分支
  1. 创建 & 切换分支
复制代码
  git checkout -b 新分支名   # 创建并切换到新分支
  git checkout 分支名        # 切换已有分支

3. 本地分支关联远程分支

出现 There is no tracking information 时使用:

复制代码
  git branch --set-upstream-to=origin/远程分支名 本地分支名

4. 删除分支

复制代码
  git branch -d 本地分支名          # 删除已合并本地分支
  git branch -D 本地分支名          # 强制删除未合并本地分支
  git push origin --delete 分支名   # 删除远程分支

5. 分支合并

将其他分支合并到当前分支:
*

复制代码
  git merge 待合并分支名

五、.gitignore 忽略文件配置

项目中模型权重、日志、图片、虚拟环境、密钥、IDE 配置 无需提交,新建 .gitignore 文件配置忽略规则。

通用模板

复制代码
  # 虚拟环境
  venv/
  .venv/
  env/

  # IDE 配置文件
  .vscode/
  .idea/
  *.iml

  # 系统文件
  .DS_Store
  Thumbs.db

  # 模型权重、大文件
  *.ckpt
  *.safetensors
  *.bin
  local_model/

  # 测试输出、日志、图片
  output/
  output0/
  logs/
  *.jpg
  *.png

  # 环境配置、密钥文件
  .env
  *.yaml

提交忽略文件到仓库

复制代码
  git add .gitignore
  git commit -m "添加文件忽略规则"
  git push

六、推送报错原因与解决方案

错误提示 问题原因 解决命令
Updates were rejected / non-fast-forward 本地分支落后远程,禁止直接推送 git pull origin 分支名 --rebase 解决冲突后 push
You have divergent branches 本地与远程分支历史分叉 git pull 解决冲突后提交推送
You have unmerged paths 存在未解决的代码冲突 处理冲突文件 → git add → 继续合并
Unable to read remote refs 本地远程分支引用失效 git fetch --prune

强制推送(谨慎使用)

多人协作禁止随意使用,仅个人独立分支紧急修复使用:

复制代码
git push -f origin 分支名

七、团队协作安全规范

  1. 每日开发第一步:git pull --rebase,保证本地代码最新。
  2. 提交备注规范:feat新功能fix修复bugrefactor代码重构
  3. 临时代码使用 git stash 储藏,减少无效临时提交。
  4. 必须配置 .gitignore,严禁提交密钥、模型、本地日志。
  5. 个人分支优先使用 rebase,公共主干分支使用 merge
  6. 非紧急场景,禁止使用 git push --force 强制推送。
  7. 高危操作前备份文件,防止代码误删。

八、修改 Git 提交账户信息

提交姓名、邮箱错误,分当前仓库、全局、单次提交、历史提交四种修改方式。

1. 仅修改当前项目仓库账号

只对当前项目生效,不影响其他项目:

复制代码
git config user.name "你的姓名"
git config user.email "你的邮箱@shturl."

2. 修改全局账号(所有项目生效)

复制代码
git config --global user.name "你的姓名"
git config --global user.email "你的邮箱@shturl."

3. 查看当前账号信息

复制代码
git config user.name
git config user.email

4. 修改最近一次提交的作者信息

已提交未推送,修正本次提交账号:

复制代码
git commit --amend --author="姓名 <邮箱@shturl.>"

同步修改作者与提交备注:

复制代码
git commit --amend --author="姓名 <邮箱@shturl.>" -m "新备注"

5. 修改多条历史提交作者(高危)

修改过往多条提交的账号,修改历史必须强制推送,提前和团队沟通:

复制代码
git rebase -i HEAD~n   # n 代表最近 n 条提交

将文件内 pick 改为 edit,保存退出,依次执行:

复制代码
git commit --amend --author="姓名 <邮箱@shturl.>"
git rebase --continue

全部修改完成后强制推送:

复制代码
git push origin main --force

6. 常见问题说明

  1. 新配置仅对后续提交生效,无法自动修改已完成的历史提交。
  2. 已推送到远程的错误提交,必须修改历史 + 强制推送才能更新。
  3. GitHub 页面昵称不同,清理浏览器缓存等待刷新即可。

九、极简速查命令(日常复制即用)

复制代码
# 拉取最新代码
git pull origin 分支名 --rebase

# 标准提交流程
git add .
git commit -m "提交备注"
git push

# 临时储藏/恢复
git stash
git stash pop

# 撤销本地所有修改
git checkout -- .

# 清理无效远程分支引用
git fetch --prune

本文覆盖 95% 开发场景下的 Git 操作,从基础提交流程、冲突处理、分支管理到账号配置,全程实战可用,适合开发人员、运维、团队协作使用。

相关推荐
OsDepK12 小时前
移动编程OSMDE随时命令行进行Git
ide·git
小李不困还能学1 天前
用git GUI往远程仓库中添加文件/文件夹
git
失途老马1 天前
Git Patch 生成与应用完整操作手册
git
李白的天不白1 天前
下载smartadmin框架
git·github
可乐要加冰^-^1 天前
云雀文档下载
windows·git·github·石墨文档
NaclarbCSDN1 天前
我写了一个命令行书签管理器,然后抛弃了浏览器书签栏
linux·git·python·github
++==1 天前
git的安装以及基本命令使用、远程仓库的操作、vscode连接远程仓库进行项目的上传、gitee的使用
linux·git·gitee
kyriewen1 天前
Git Commit 前自动修复代码风格?配置 Husky + lint-staged,从此 CR 只聊逻辑
前端·git·面试