前言:整理日常开发中高频使用的Git命令,重点适配「本地分支管理、远程同步、代码提交推送」等核心场景,结合实际操作案例说明,新手可直接复制使用,避免踩坑。(本文命令适配Linux/Mac终端,Windows终端同样适用,无需修改)

一、基础配置命令(首次使用必做)

用于配置Git用户信息、编码格式(解决中文乱码/无法输入问题),仅需执行一次(全局配置)。

# 配置用户名(与Gitee/GitHub账号一致)
git config --global user.name "你的用户名"

# 配置用户邮箱(与账号绑定邮箱一致)
git config --global user.email "你的邮箱地址"

# 解决中文乱码、中文无法输入问题(关键!)
git config --global core.quotepath false
git config --global gui.encoding utf-8
git config --global i18n.commitencoding utf-8
git config --global i18n.logoutputencoding utf-8

# 查看当前Git配置信息
git config --list

二、本地分支管理(高频核心)

涵盖分支查看、创建、重命名、删除,重点适配「master改main」场景(当前主流分支命名规范)。

# 1. 查看本地所有分支(* 表示当前所在分支)
git branch

# 2. 查看本地分支+关联的远程分支(关键!确认分支关联状态)
git branch -vv

# 3. 本地分支重命名(例:将master改为main,重点常用)
git branch -m master main

# 4. 创建新分支(例:创建test分支)
git branch test

# 5. 切换到指定分支(例:切换到pinn分支,自动关联远程)
git checkout pinn

# 6. 创建并切换到新分支(简化命令)
git checkout -b 新分支名

# 7. 删除本地分支(需先切换到其他分支,例:删除master分支)
git branch -d master

# 8. 强制删除本地分支(未合并的分支,谨慎使用)
git branch -D 分支名

三、远程仓库操作(高频核心)

涵盖远程仓库查看、关联、拉取、推送,适配「多机器同步、远程分支管理」场景。

# 1. 查看远程仓库链接(确认当前关联的远程地址)
git remote -v

# 2. 关联远程仓库(首次克隆/初始化仓库时使用)
git remote add origin 远程仓库地址(例:https://gitee.com/xxx/xxx.git)

# 3. 拉取远程最新代码(不覆盖本地修改,安全优先)
git fetch origin

# 4. 拉取远程最新代码并合并(常用,简化fetch+merge)
git pull

# 5. 推送本地代码到远程(例:推送main分支到远程)
git push origin main

# 6. 首次推送分支(绑定本地与远程分支,后续可直接git push)
git push -u origin main

# 7. 删除远程分支(谨慎使用,例:删除远程master分支)
git push origin --delete master

# 8. 解除本地与远程分支的关联(如需重新关联时使用)
git branch --unset-upstream

四、代码提交与暂存(高频核心)

涵盖代码暂存、提交、撤销,解决「本地修改保留、提交中文信息」等实际问题。

# 1. 查看本地修改(哪些文件被修改、未提交)
git status

# 2. 将所有修改加入暂存区(准备提交)
git add .

# 3. 将指定文件加入暂存区(例:仅提交train_dtu.py)
git add train_dtu.py

# 4. 提交暂存区代码(带中文信息,新手首选,无需进入编辑器)
git commit -m "中文提交信息(例:修改训练脚本,更新测试配置)"

# 5. 提交暂存区代码(进入vim编辑器,需按i输入,Esc+:wq保存退出)
git commit

# 6. 暂存本地修改(不提交,用于切换分支/拉取远程前,保留本地修改)
git stash

# 7. 恢复暂存的本地修改(取出之前stash的内容)
git stash pop

# 8. 撤销本地修改(未暂存的修改,谨慎使用,无法恢复)
git restore 文件名(例:git restore train_dtu.py)

# 9. 撤销暂存区的修改(已git add,未git commit)
git reset HEAD 文件名

五、差异对比与日志查看(排查问题常用)

用于查看本地与远程、不同分支、不同提交之间的代码差异,排查修改内容。

# 1. 查看本地与远程分支的代码差异(例:本地main与远程main)
git diff main origin/main

# 2. 查看两个分支之间的差异(例:main与pinn分支)
git diff main pinn

# 3. 查看具体文件的修改内容(例:查看train_dtu.py的修改)
git diff 文件名

# 4. 查看提交日志(简洁版,只显示提交ID和信息)
git log --oneline

# 5. 查看完整提交日志(包含提交人、时间、详细信息)
git log

# 6. 查看所有操作日志(包括分支改名、reset等,排查问题关键)
git reflog

六、应急与修复命令(踩坑必备)

用于解决「代码误删、提交错误、分支错乱」等问题,谨慎使用。

# 1. 强制同步远程代码(覆盖本地所有修改,慎用!适用于本地代码无用时)
git reset --hard origin/main

# 2. 撤销最近一次提交(保留本地修改,仅撤销commit操作)
git reset --soft HEAD^

# 3. 恢复已删除的本地分支(通过git reflog找到分支ID,例:ID为3fd9072)
git checkout 3fd9072

# 4. 清理本地无用的远程分支引用(远程已删除,本地仍显示的分支)
git fetch --prune

七、常用场景组合命令(直接复制使用)

结合实际开发场景,整理好的组合命令,无需逐行输入。

# 场景1:本地master改main,关联远程并同步(完整流程)
git stash
git branch -m master main
git fetch origin
git branch --set-upstream-to=origin/main main
git pull
git stash pop

# 场景2:本地修改后,提交并推送到远程
git add .
git commit -m "提交信息"
git push

# 场景3:切换到远程pinn分支,同步最新代码
git checkout pinn
git pull

# 场景4:本地代码错乱,强制恢复到远程最新版
git fetch origin
git reset --hard origin/main

八、新手避坑提醒

  • 1. 推送代码前,务必先执行 git pull 拉取远程最新代码,避免冲突。

  • 2. 分支重命名(git branch -m)仅修改本地分支名,远程分支需单独推送/删除。

  • 3. 中文提交信息必须用 git commit -m "中文",直接用git commit需熟悉vim操作。

  • 4. git reset --hard 命令会彻底删除本地修改,执行前务必确认无需保留本地内容。

  • 5. 远程分支不会自动同步到本地,需用git checkout 分支名 手动创建并关联。

结尾:以上命令覆盖日常开发90%+场景,尤其是分支管理、远程同步等高频操作,新手可收藏备用,后续遇到新场景再补充。如果觉得有用,欢迎点赞收藏~