查看当前git分支:

1. 最基础 / 最常用:git branch

这是查看分支的核心命令,执行后会清晰标注当前分支:

git branch
输出示例:
dev
* master  # 带 * 号的就是当前分支
  rz
  • * 符号:明确指向你当前所处的分支;
  • 无参数的 git branch 会列出本地所有分支,且高亮显示当前分支(终端中通常是绿色)。
进阶用法(显示更多信息):
# 显示本地+远程所有分支,同时标注当前分支
git branch -a

# 显示分支最后一次提交信息,更易区分分支用途
git branch -v

2. 极简查看(只显示当前分支名):git branch --show-current

如果你只需要 “当前分支名”(无需其他分支列表),这个命令最简洁:

git branch --show-current
输出示例:
master

这个命令适合脚本编写、自动化操作等场景,只返回纯分支名字符串,无多余信息。

3. 结合状态查看(顺带看分支):git status

你之前也用过的 git status,第一行就会显示当前分支:

git status
输出示例:
On branch master  # 明确当前分支
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

这个命令的优势是:既能看当前分支,又能看工作区状态(是否有未提交修改),日常开发中用得最多。

4. 显示分支关联(含远程):git log --oneline --decorate

如果想知道当前分支关联的远程分支、提交位置,可用这个命令:

bash

运行

git log --oneline --decorate
输出示例:
af64315 (HEAD -> master, origin/master) 2.0  # HEAD 指向当前分支 master
  • HEAD -> master:表示当前分支是 master;
  • origin/master:表示本地 master 关联远程 origin 的 master 分支。

总结

  1. 日常快速查看:用 git branch(看所有分支 + 当前)或 git status(看分支 + 工作区状态);
  2. 只取当前分支名:用 git branch --show-current(适合脚本 / 自动化);
  3. 核心标识:所有命令中,* 号、On branch xxxHEAD -> xxx 都是 “当前分支” 的核心标记。

这些命令在 IDEA 的 Terminal 或系统终端中执行都有效,是 Git 分支管理最基础也最常用的操作。

新建分支

1. 基础操作:新建分支 + 切换分支(两步法)
# 1. 先确保当前分支是最新的(比如 master),拉取远程最新代码
git pull origin master

# 2. 新建分支(比如叫 dev-2.1,命名建议:功能/版本+分支名)
git branch dev-2.1

# 3. 切换到新建的分支
git checkout dev-2.1
2. 快捷操作:新建并直接切换(一步法,推荐)
# 新建分支 dev-2.1 并立即切换到该分支(最常用)
git checkout -b dev-2.1
  • 输出示例:Switched to a new branch 'dev-2.1',表示分支创建并切换成功。
3. 把新建的本地分支推送到远程(Gitee)

新建的分支默认只在本地,如需同步到远程仓库,执行:

# 推送本地 dev-2.1 分支到远程 origin,并建立关联
git push -u origin dev-2.1
  • -u 作用:把本地分支和远程分支绑定,后续只需 git push 即可推送,无需指定分支名;
  • 输出示例:Branch 'dev-2.1' set up to track remote branch 'dev-2.1' from 'origin',表示推送成功。
4. 验证分支是否创建成功
# 查看本地所有分支(* 号是当前分支)
git branch

# 查看本地+远程所有分支
git branch -a

输出示例:

* dev-2.1
  master
  remotes/origin/dev-2.1  # 远程已同步该分支
  remotes/origin/master

二、IDEA 图形界面方式(更直观,无需记命令)

方法 1:通过 Git 菜单新建
  1. 打开 IDEA,点击顶部菜单栏:Git → New Branch...
  2. 在弹出的窗口中:
    • 输入分支名(比如 dev-2.1);
    • 确认基于哪个分支创建(默认是当前分支,比如 master);
    • 勾选 Checkout branch(自动切换到新分支);
    • 点击 Create
  1. 推送远程:右键点击底部状态栏的分支名 → Push → 确认推送即可。
方法 2:通过分支面板新建
  1. 点击 IDEA 底部状态栏的当前分支名(比如 master);
  2. 在弹出的分支列表中,点击 New Branch...
  3. 后续步骤同上,输入分支名 → 创建 → 推送。

三、分支命名规范(新手建议)

为了方便管理,分支名建议按 “用途 + 版本 / 日期” 命名,比如:

  • 功能开发:feature-dev-设备管理feature-v2.1
  • 修复 bug:bugfix-登录异常
  • 测试版本:test-v2.1
  • 发布版本:release-v2.0

总结

  1. 核心命令
    • 新建 + 切换:git checkout -b 分支名
    • 推送远程:git push -u origin 分支名
  1. 关键原则
    • 新建分支前,先在主分支(master/main)拉取最新代码(git pull),避免分支基于旧代码创建;
    • 新分支推送到远程时,用 -u 绑定本地和远程分支,后续操作更便捷;
  1. IDEA 快捷方式:通过 Git → New Branch 一键创建,无需记命令。

按这些步骤操作,你就能轻松创建、切换、推送新分支,实现代码的隔离开发(比如在新分支开发功能,不影响主分支代码)。

拉取推送

1. 最基础用法(推送当前分支到远程)
# 推送当前分支到远程同名分支(默认远程仓库名是 origin)
git push origin 分支名
# 示例:推送本地 master 分支到远程 master 分支
git push origin master
2. 首次推送新分支(绑定本地和远程分支,推荐)

新建分支后第一次推送,用 -u 绑定分支(后续只需 git push 即可):

# -u = --set-upstream,绑定本地分支和远程分支
git push -u origin 新分支名
# 示例:新建 dev 分支后首次推送
git push -u origin dev

✅ 绑定后,后续只需执行 git push(无需指定分支名),Git 会自动推到绑定的远程分支。

3. 简化用法(已绑定分支)

如果本地分支已和远程分支绑定(执行过 -u),直接执行:

git push
4. 强制推送(谨慎使用!)

仅当远程分支有错误提交,需要覆盖时使用(会丢失远程代码,团队协作禁止用):

git push -f origin 分支名
# 或 git push --force origin 分支名

二、核心拉取(pull)命令:把远程代码拉到本地仓库

拉取的作用是将远程分支的最新代码同步到本地分支,核心格式:git pull [远程仓库名] [远程分支名]:[本地分支名]

1. 最基础用法(拉取远程分支到本地当前分支)
# 拉取远程 origin 仓库的指定分支到本地当前分支
git pull origin 远程分支名
# 示例:拉取远程 master 分支到本地当前分支
git pull origin master
2. 简化用法(拉取远程同名分支)

如果本地分支已和远程分支绑定,直接执行:

git pull

✅ 这是日常开发中最常用的命令(比如每天开发前先 git pull 拉取最新代码,避免冲突)。

3. 拉取远程分支到本地新分支(本地无对应分支)

如果想拉取远程的新分支(比如同事创建的 dev-2.2)到本地:

# 1. 先查看远程所有分支
git branch -a
# 2. 拉取远程分支并创建本地同名分支
git pull origin 远程分支名:本地分支名
# 示例:拉取远程 dev-2.2 分支到本地 dev-2.2 分支
git pull origin dev-2.2:dev-2.2
# 3. 切换到新拉取的分支
git checkout dev-2.2

三、推送 / 拉取的关键注意事项(避坑!)

1. 推送前必须先拉取(团队协作核心原则)

推送代码前,务必先执行 git pull 拉取远程最新代码,合并本地修改后再推送,否则会出现你之前遇到的 rejected 错误:

# 正确流程:拉取 → 解决冲突(如有) → 推送
git pull origin master
git push origin master
2. 拉取时出现冲突的解决方法

如果拉取时提示 Automatic merge failed(代码冲突):

  1. 打开 IDEA,冲突文件会标红,找到 <<<<<<<=======>>>>>>> 冲突标记;
  2. 保留需要的代码(删除冲突标记);
  3. 提交冲突解决:
git add .  # 暂存解决后的文件
git commit -m "解决拉取冲突"
3. 常用组合命令(日常开发流程)
# 1. 开发前拉取最新代码
git pull origin master

# 2. 开发后提交本地修改
git add .
git commit -m "开发XX功能"

# 3. 推送本地提交到远程
git push origin master

总结

操作场景

核心命令

关键说明

推送已绑定分支

git push

最简,需先执行过 -u绑定

首次推送新分支

git push -u origin 分支名

绑定本地和远程分支

拉取已绑定分支

git pull

最简,日常开发优先用

拉取指定远程分支

git pull origin 分支名

本地无绑定分支时用

推送前必做

git pull origin 分支名

避免远程有新代码导致推送失败

✅ 核心记住:

  • 推送:git push [-u] origin 分支名(首次加 -u);
  • 拉取:git pull [origin 分支名](已绑定直接 git pull);
  • 推送前先拉取,是避免冲突的核心原则。

远程仓库设置

在IDEA里面设置url

查看git文件大小

你可以通过以下命令查看本地 .git 文件夹的大小(直观了解占用量):

# Windows 终端(PowerShell):查看 .git 文件夹大小
du -h .git

# Windows CMD:查看 .git 文件夹大小
dir /s .git

# Mac/Linux:查看 .git 文件夹大小(更直观)
du -sh .git

示例输出(Mac/Linux):12M .git → 表示 Git 版本库仅占用 12MB 磁盘空间。

管理git仓库

1. 用 .gitignore 排除无用大文件(核心)

在项目根目录的 .gitignore 中添加以下内容,避免 Git 追踪大文件:

# 前端
node_modules/  # 依赖包,本地重新安装即可
dist/          # 打包产物
*.log          # 日志文件

# 后端
target/        # 编译产物
*.jar          # 打包的jar包
*.zip          # 压缩包

# 通用
.idea/         # IDE 配置文件
*.iml
2. 清理 Git 历史中的大文件(如果已提交)

如果大文件已经被提交到历史记录中,用 bfg-repo-cleaner 工具清理(比原生 Git 命令更简单):

# 1. 下载 BFG 工具(https://rtyley.github.io/bfg-repo-cleaner/)
# 2. 清理历史中的大文件(比如大于 100MB 的文件)
java -jar bfg.jar --strip-blobs-bigger-than 100M 你的仓库名.git

# 3. 推送清理后的历史到远程
git push -f origin master
3. 定期清理 Git 缓存
# 清理未引用的对象(压缩仓库)
git gc --aggressive --prune=now

总结

  1. 核心结论:Git 版本控制会占用额外的磁盘空间(而非运行内存),但通过差异存储和压缩,占用量远低于手动备份;
  2. 影响程度:纯代码项目的 Git 仓库体积通常很小(几十 MB 以内),对现代硬盘(几百 GB)几乎无影响;
  3. 优化建议:用 .gitignore 排除大文件(如 node_modules/target/),是控制 Git 仓库体积的关键,避免无用文件占用空间。

简单来说,你完全不用担心里程碑级的代码版本会让磁盘爆满,Git 的设计已经把空间占用做到了极致,只需做好 .gitignore 配置即可。

查看git提交记录

你想查看 Git 仓库中每次提交的版本记录(包括版本ID、修改内容、提交信息等),我会按“从简单到详细”的顺序,教你最实用的几个命令,覆盖不同查看需求,新手也能快速上手。

一、最基础:查看所有提交版本(精简版)

git log --oneline 是日常最常用的命令,能以一行的形式显示所有提交版本,核心信息一目了然:

git log --oneline
输出示例:
af64315 (HEAD -> master, origin/master) 2.0  # 版本ID + 分支 + 提交说明
26aa0b2 软著                                 # 历史版本ID + 提交说明
  • 核心信息:每行开头的字符串(如 af64315)是提交的短版本ID(完整ID是40位字符);后面是提交说明,能快速知道每个版本的改动目的。

二、查看完整的提交版本信息(含作者/时间)

如果需要更详细的版本信息,直接用 git log(不加参数),会显示每个版本的完整信息:

git log
输出示例:
commit af64315897abcdef1234567890abcdef12345678 (HEAD -> master, origin/master)
Author: 你的用户名 <你的邮箱@xxx.com>
Date:   Tue Mar 3 16:39:45 2026 +0800

    2.0

commit 26aa0b2123456789abcdef0123456789abcdef01
Author: 你的用户名 <你的邮箱@xxx.com>
Date:   Mon Mar 2 10:00:00 2026 +0800

    软著
  • 核心信息
    • commit 后是完整版本ID(可用于回滚、对比版本);
    • Author:提交人;Date:提交时间;
    • 最后是提交说明,描述该版本的改动。

三、查看指定版本的详细修改内容

如果想知道某个版本具体改了哪些代码(比如 26aa0b2 版本),用 git show 命令:

# 格式:git show 版本ID
git show 26aa0b2
输出示例(关键部分):
commit 26aa0b2123456789abcdef0123456789abcdef01
Author: 你的用户名 <你的邮箱@xxx.com>
Date:   Mon Mar 2 10:00:00 2026 +0800

    软著

diff --git a/pom.xml b/pom.xml
index ea16ce6..f897abc 100644
--- a/pom.xml
+++ b/pom.xml
@@ -10,7 +10,7 @@
     <artifactId>backed</artifactId>
     <version>0.0.1-SNAPSHOT</version>
     <name>backed</name>
-    <description>backed</description>
+    <description>软著相关配置</description>
  • 核心信息:用 +/- 标注该版本新增/删除的代码行,直观看到每个版本的具体改动。

四、进阶:按文件筛选版本记录

如果只想查看某个文件(比如 pom.xml)的所有提交版本,用 git log 文件名

git log --oneline pom.xml
输出示例:
af64315 2.0
26aa0b2 软著
  • 只显示修改过 pom.xml 文件的提交版本,适合定位某个文件的历史改动。

五、可视化查看版本(新手友好)

如果觉得命令行不直观,可用 Git 自带的图形化工具查看版本记录:

gitk
  • 会弹出图形窗口,以时间线形式展示所有提交版本,点击某个版本就能查看详细修改内容,无需记复杂命令。

总结

需求场景

核心命令

关键作用

快速看所有版本(精简)

git log --oneline

一行一个版本,看ID和提交说明

看完整版本信息(作者/时间)

git log

查看每个版本的完整元信息

看指定版本的修改内容

git show 版本ID

查看某个版本具体改了哪些代码

看单个文件的版本记录

git log --oneline 文件名

筛选指定文件的所有提交版本

✅ 核心记住:

  • 查版本列表用 git log --oneline
  • 查版本具体改动用 git show 版本ID
  • 版本ID可以用短ID(如 26aa0b2),无需输入完整40位字符。

版本控制

你在查看完 Git 提交版本后,想要将本地代码切换/回滚到某个指定版本,Git 提供了两种核心方式(对应不同场景),我会按“新手易理解、低风险”的原则,教你具体命令和注意事项。

先明确核心概念

在操作前,先分清两个关键场景(避免误操作):

  • 临时切换版本(查看/测试,可随时切回):用 git checkout,不修改当前分支的提交历史,风险低;
  • 永久回滚版本(覆盖当前分支,谨慎用):用 git reset,会修改提交历史,适合需要撤销后续所有提交的场景。

方式 1:临时切换到指定版本(推荐,低风险)

这个操作只是“跳转到”目标版本查看代码,当前分支的提交历史不会被修改,想切回最新版本只需执行 git checkout 分支名 即可。

步骤 1:获取目标版本的 ID

先通过 git log --oneline 找到要切换的版本 ID(比如 26aa0b2):

git log --oneline
# 输出示例:
# af64315 (HEAD -> master) 2.0
# 26aa0b2 软著  <-- 要切换的目标版本ID
步骤 2:切换到目标版本
# 格式:git checkout 版本ID
git checkout 26aa0b2
执行后提示(正常):
Note: switching to '26aa0b2'.
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by switching back to a branch.
  • detached HEAD 表示“游离头指针”,即当前处于某个具体版本,而非某个分支上,这是正常状态,只是提醒你:这里的修改如果不创建新分支,切回原分支后会丢失。
步骤 3:切回最新版本(完成测试/查看后)
# 切回 master 分支(最新版本)
git checkout master

方式 2:永久回滚到指定版本(谨慎!修改提交历史)

如果需要将当前分支永久回滚到目标版本(后续的提交都会被“撤销”),用 git reset,分两种情况:

场景 A:回滚后保留后续修改(推荐,可恢复)
# 格式:git reset --soft 版本ID
git reset --soft 26aa0b2
  • 效果
    1. 分支头指针回到目标版本;
    2. 后续版本的修改会保留在暂存区git status 能看到);
    3. 提交历史被修改,但代码改动未丢失,可重新提交或调整。
场景 B:彻底回滚(删除后续所有修改,不可恢复)
# 格式:git reset --hard 版本ID
git reset --hard 26aa0b2
  • 效果
    1. 分支头指针回到目标版本;
    2. 后续版本的所有修改被彻底删除(包括工作区和暂存区);
    3. 提交历史被覆盖,无法恢复(除非记得后续版本的 ID)。
  • ❗ 警告:团队协作中,若该分支已推送到远程,禁止用 --hard,会导致本地和远程版本不一致,引发冲突。
步骤 3:推送回滚后的版本到远程(如需)

如果是自己的分支,且确定要覆盖远程版本,执行:

# 强制推送(团队协作禁止!)
git push -f origin master

补充:回滚后想恢复最新版本(误操作补救)

如果用 git checkout 临时切换后想回滚,直接切回分支即可;如果用 git reset --hard 误删了修改,可通过 git reflog 恢复:

# 查看所有操作记录(包括 reset、checkout 等)
git reflog
# 输出示例:
# af64315 HEAD@{0}: reset: moving to 26aa0b2
# 8765432 HEAD@{1}: commit: 2.0
# 26aa0b2 HEAD@{2}: commit: 软著

# 切回最新版本(比如 8765432)
git reset --hard 8765432

总结

需求场景

核心命令

风险等级

关键说明

临时查看指定版本

git checkout 版本ID

不修改提交历史,切回分支即可

保留修改回滚版本

git reset --soft 版本ID

后续修改保留在暂存区

彻底删除后续修改回滚

git reset --hard 版本ID

不可恢复,禁止在共享分支使用

回滚后推送到远程

git push -f origin 分支名

极高

覆盖远程版本,团队协作禁用

✅ 核心建议:

  1. 仅临时查看/测试旧版本 → 用 git checkout 版本ID
  2. 个人分支想回滚且保留修改 → 用 git reset --soft 版本ID
  3. 禁止在多人协作的分支(如 master)用 --hardpush -f,会导致他人代码丢失。
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐