关于git的使用流程

[复制链接]
发表于 2025-7-22 20:21:06 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
🧠 一、Git 是什么?

Git 是一个分布式版本控制系统,常用于代码管理、团队协作开发。它能记录项目的每一次修改,方便你随时“回到已往”。

🚀 二、Git 工作流程(简化版)

  1. rust
  2. ​
  3. ​
  4. 复制编辑
  5. 工作目录 -> 暂存区 -> 本地仓库 -> 远程仓库
复制代码

  • 工作目录:你现实写代码的地方。
  • 暂存区(Staging Area):预备提交的地方。
  • 本地堆栈(Local Repository):你的 Git 堆栈,存储项目历史记录。
  • 远程堆栈(Remote Repository):比方 GitHub、Gitee 上的堆栈。

🛠️ 三、Git 常用命令大全

1. 初始化与设置

  1. bash复制编辑git init                        # 初始化本地仓库
  2. git config --global user.name "你的名字"
  3. git config --global user.email "你的邮箱"
复制代码
2. 添加与提交

  1. bash复制编辑git status                      # 查看状态
  2. git add 文件名                 # 添加文件到暂存区
  3. git add .                      # 添加全部文件
  4. git commit -m "描述信息"        # 提交到本地仓库
复制代码
3. 检察日志日志

  1. bash复制编辑git log                        # 查看提交历史
  2. git log --oneline              # 简洁查看提交历史
复制代码
4. 分支操纵

  1. bash复制编辑git branch                     # 查看分支
  2. git branch 分支名              # 创建分支
  3. git checkout 分支名            # 切换分支
  4. git merge 分支名               # 合并分支
  5. git branch -d 分支名           # 删除分支
复制代码
5. 远程操纵(以 GitHub 为例)

  1. bash复制编辑git remote add origin 仓库地址     # 添加远程仓库
  2. git push -u origin master          # 第一次推送主分支
  3. git push                           # 后续推送
  4. git pull                           # 拉取远程仓库内容
复制代码

📁 四、Git 文件状态图解

  1. scss
  2. ​
  3. ​
  4. 复制编辑
  5. 未跟踪(Untracked) → 暂存(Staged) → 已提交(Committed)
复制代码
配合命令:


  • git add:从未跟踪或已修改 → 暂存
  • git commit:从暂存 → 提交
  • git status:检察当前状态

🧯 五、常见标题

1. 忘记 add?

  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. git commit -am "快速提交已修改文件"
复制代码
2. 想打消修改?

  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. git checkout -- 文件名    # 丢弃工作区的修改
复制代码
3. 想回退提交?

  1. bash复制编辑git reset --hard HEAD^       # 回退到上一个版本
  2. git reset --hard 提交ID      # 回退到指定版本
复制代码

📘 六、进阶学习建议



  • 学习 .gitignore 忽略文件设置
  • 认识 Git 分支管理策略(如 Git Flow)
  • 学习 rebase、stash 等高级用法
  • 图形化工具:GitHub Desktop / Sourcetree

✅ 七、学习资源保举



  • 官方文档:Git
  • 廖雪峰的 Git 教程:简介 - Git教程 - 廖雪峰的官方网站
  • Pro Git 中文版:Git

需要我帮你写一个 Git 学习笔记 PDF 大概项目示例也可以告诉我!你也可以说你如今在做哪个项目,我教你现实应用 Git。

您说:

学习 .gitignore 忽略文件设置

ChatGPT 说:

好的,下面是关于 .gitignore 文件的学习指南,让你把握如何忽略不应被提交到 Git 堆栈的文件。

📄 一、.gitignore 是什么?

.gitignore 文件用于告诉 Git:哪些文件不需要提交到版本库。
比方:日志日志文件、临时文件、本地设置、构建输出等。

📁 二、.gitignore 放在哪?

通常 .gitignore 放在项目的根目录下,Git 自动辨认。

✍️ 三、常见规则写法

规则含义*.log忽略所有 .log 文件temp/忽略整个 temp 文件夹*.class忽略所有 Java 编译后的 .class 文件!important.log例外规则:不忽略 important.log*.txt忽略所有 .txt 文件/config/settings.json只忽略根目录下的该文件

📌 四、示例 .gitignore

这是一个实用于 Web 项目的示例:
  1. gitignore复制编辑# Node.js 项目忽略
  2. node_modules/
  3. npm-debug.log
  4. dist/
  5. ​
  6. # Vue 项目
  7. *.local
  8. .env.local
  9. .env.*.local
  10. ​
  11. # Mac 系统
  12. .DS_Store
  13. ​
  14. # IDE 忽略
  15. .idea/
  16. .vscode/
  17. ​
  18. # 编译文件
  19. *.out
  20. *.class
  21. *.exe
复制代码

🔍 五、已经被 Git 跟踪的文件如何忽略?

   说明:.gitignore 只能忽略未被 Git 跟踪的文件。假如文件已经提交过,需要先删除缓存。
  步调:

  1. bash复制编辑git rm -r --cached 文件名或目录
  2. git commit -m "删除缓存的文件"
复制代码

🎁 六、常见项目的 .gitignore 模板

你可以使用 GitHub 官方提供的模板:


  • GitHub - github/gitignore: A collection of useful .gitignore templates
包罗了:Java、Python、Node、Vue、React、C++ 等各种语言和框架的 .gitignore 模板。

✅ 七、小结:使用建议


  • 项目一开始就设置 .gitignore
  • 设置通配符规则简洁明了
  • 不要忽略关键文件(如设置文件模板,可提交 .env.example)
  • 避免在 .gitignore 中滥用 ! 例外规则,轻易出错

需要我根据你的项目(好比 Vue + Spring Boot)为你生成一份 .gitignore 吗?只要告诉我技能栈,我可以帮你写好一份直接用。

您说:

如今 假如公司给我发一个远端堆栈地点 让我完成部分接口开发 整个git流程是怎么样的

ChatGPT 说:

这是一个非经常见的工作场景!假如公司已经为你建好了一个远程堆栈并给了你地点,要求你完成部分接口开发,那么你的 完整 Git 开发流程 通常如下👇

🧭 一、前提条件

你需要确保本地已安装好 Git,而且已经设置了用户名和邮箱:
  1. bash复制编辑git config --global user.name "你的名字"
  2. git config --global user.email "你的邮箱"
复制代码

🧷 二、Git 工作流程(完整)

✅ 第1步:克隆远程堆栈

  1. bash复制编辑git clone 仓库地址.git
  2. cd 项目目录
复制代码
  比方:
  1. bash复制编辑git clone https://gitee.com/your-company/project-backend.git
  2. cd project-backend
复制代码

✅ 第2步:切换开发分支

一样平常公司项目不会在 master 或 main 上直接开发。
  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. git checkout -b feature/接口名
复制代码
  建议分支定名规范:feature/xxx、bugfix/xxx、hotfix/xxx 等
  
✅ 第3步:开发你的接口代码

好比你开发一个 /user/login 接口,修改后进行如下操纵:

✅ 第4步:添加改动并提交

  1. bash复制编辑git status                  # 查看修改了哪些文件
  2. git add .                   # 添加所有改动文件
  3. git commit -m "新增用户登录接口"
复制代码

✅ 第5步:推送到远程分支

  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. git push origin feature/接口名
复制代码
  第一次推送大概需要 -u 选项创建跟踪关系:
  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. git push -u origin feature/接口名
复制代码

✅ 第6步:发起合并请求(PR / MR)

假如公司用的是:


  • GitHub / Gitee:登录网页,发起 Pull Request(PR)
  • GitLab:发起 Merge Request(MR)
通常是合并到 dev 或 main 分支,需要团队其他人代码审核后合并。

✅ 第7步:后续同步主分支的更新

多人协作时,主分支在不断更新,开发过程中可以定期同步:
  1. bash复制编辑git checkout dev                    # 回到主分支
  2. git pull origin dev                 # 拉取远程最新代码
  3. git checkout feature/接口名         # 回到你的分支
  4. git merge dev                       # 合并主分支最新改动
复制代码
大概更高级的做法(重写提交历史):
  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. git rebase dev
复制代码

🧯 增补:常见注意事项

环境应对策略.gitignore 没写好修改后用 git rm -r --cached 文件名 清缓存提交错分支了可以用 git cherry-pick 或 rebase 搬迁提交push 失败用 git pull --rebase 辩论解决后再 push想打消提交git reset、git revert 等回退命令

🧪 示例:Spring Boot 项目开发流程简图

  1. sql复制编辑git clone ...
  2.   ↓
  3. git checkout -b feature/user-api
  4.   ↓
  5. 编码开发:新增 LoginController.java
  6.   ↓
  7. git add . && git commit -m "新增登录接口"
  8.   ↓
  9. git push origin feature/user-api
  10.   ↓
  11. 登录 Gitee 发起 PR 到 dev
复制代码

❓你如今可以告诉我:



  • 公司给你的远程地点是 Gitee 照旧 GitHub?
  • 项目是前端、后端照旧全栈?
  • 你开发的接口大概是什么功能?
我可以帮你写出具体的命令和操纵手册,好比帮你生成专属 .gitignore,大概命令行提示脚本。

您说:

那么假如我开发另外一个接口每次都需要拉去代码最新代码下来吗 假如是 具体操纵是什么

ChatGPT 说:

是的,在多人协作开发中,你在开发新的接口前,保持本地代码是最新的黑白常紧张的,避免辩论、保证集成正常。下面我给你讲清楚 是否需要拉取代码、拉取的时机 和 具体操纵步调。

✅ 一、开发新接口前,为什么要拉取最新代码?

原因如下:

  • 团队其他人大概刚刚合并了代码(好比修改了公共类、数据库实体等)。
  • 你的接口开发大概依靠其他人最近提交的功能(比方统一返回格式、认证中心件等)。
  • 避免代码辩论 —— 假如你基于老代码开发,合并的时间很轻易辩论。

🔁 二、开发新接口的标准流程(含拉取最新代码)

✅ 第1步:回到主分支(如 dev 或 main)

  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. git checkout dev
复制代码
✅ 第2步:拉取远程最新代码

  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. git pull origin dev
复制代码
  ⛳ 假如有辩论,按照提示解决后再继承。
  
✅ 第3步:基于最新代码创建新分支(开发你要的新接口)

  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. git checkout -b feature/new-api
复制代码
  分支定名规范保举: feature/xxx:新增功能接口 bugfix/xxx:修复 bug hotfix/xxx:紧急修复
  
✅ 第4步:开发你的接口、提交并推送

  1. bash复制编辑git add .
  2. git commit -m "新增 xx 接口"
  3. git push origin feature/new-api
复制代码

🔁 三、开发过程中,如何继承保持你的分支是最新的?

好比你在开发中途,团队成员把 dev 分支更新了,你想同步这些更新:
✅ 方法一:merge(简朴安全)

  1. bash复制编辑git checkout feature/new-api
  2. git pull origin dev         # 如果当前分支没关联主分支,就先切换 dev 拉代码
  3. git merge dev
复制代码
✅ 方法二:rebase(干净提交历史)

  1. bash复制编辑git checkout feature/new-api
  2. git fetch origin
  3. git rebase origin/dev
复制代码

🧪 四、开发多个接口的完整工作循环

每个接口都这样做一次:
  1. bash复制编辑git checkout dev
  2. git pull origin dev
  3. git checkout -b feature/login-api
  4. 开发、提交、推送...
  5. 发起 PR 或 MR
复制代码
然后开发下一个接口时:
  1. python-repl复制编辑git checkout dev
  2. git pull origin dev
  3. git checkout -b feature/register-api
  4. ...
复制代码

✅ 五、增补:保举的分支策略

类型分支名称用途说明主分支main / master稳定上线版本开发分支dev开发人员的公共合并分支功能分支feature/xxx每个功能/接口一个分支Bug 修复分支bugfix/xxx修复标题

假如你愿意,我可以基于你当前项目布局(好比 Spring Boot 项目 + Git 流程)帮你写一个 标准化开发指南 markdown 文档,你只要照着操纵就行了。是否需要我来帮你写?

您说:

pull每次拉取到本地堆栈哪个位置,是本地的克隆文件里面吗

ChatGPT 说:

非常好标题!你的理解已经很接近了,我来明白表明一下:

✅ git pull 到底把代码拉到哪里了?

当你实行:
  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. git pull origin dev
复制代码
它现实上做了两件事:

  • 从远程堆栈拉取(fetch)最新的 dev 分支的提交记录 到本地堆栈;
  • 自动将远程的更新合并(merge)到你当前所在的本地分支。

🔍 那这些拉下来的内容放在哪?

可以理解为:
✅ 环境1:你当前在 dev 分支

  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. git pull origin dev
复制代码
📌 更新的代码会直接被合并到你本地当前目录(也就是你看到的克隆项目文件夹)中。
📁 举例:
  1. css复制编辑项目目录/
  2. ├── src/
  3. ├── pom.xml
  4. └── ...
复制代码
你在这个目录里工作,git pull 会把远程变更同步到你当前分支的工作目录和Git 本地堆栈中。

✅ 环境2:你当前在 feature/xxx 分支

这时你拉 dev 分支不会生效!你必须:
  1. bash复制编辑git checkout dev       # 切换到 dev 分支
  2. git pull origin dev    # 拉取远程 dev 更新
复制代码
假如你想把 dev 的最新代码合并到你当前的 feature/xxx 分支,你需要:
  1. bash复制编辑git checkout feature/xxx
  2. git merge dev
复制代码
或:
  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. git rebase dev
复制代码

📦 增补理解:Git 堆栈的布局(简化版)

区域作用本地堆栈.git 目录,存储所有提交历史暂存区(Index)预备提交的修改工作目录你现实看到的代码文件(好比 VSCode)
当你实行 git pull,现实上更新了:


  • .git 里的本地堆栈记录
  • 当前分支的工作目录(也就是你能看到和编辑的地方)

✅ 所以总结:

   💬 是的,git pull 把远程更新的代码直接同步到你本地的克隆项目文件夹中(即你正在开发的谁人目录),而且会同步更新你的 .git 本地堆栈记录。
  
假如你想检察“我到底拉了哪些代码”,可以在 git pull 之后运行:
  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. git log --oneline --graph --decorate --all
复制代码
它可以帮你可视化地看到各个分支的变动。

假如你想,我也可以画一个 Git 的工作原理图给你,更直观地表现 pull 是怎么作用在工作目录和本地堆栈的。是否需要?

您说:

需要

ChatGPT 说:

好的!下面是一个Git 的工作原理图(重点展示 git pull 的流程),资助你理解从远程拉代码到本地的整个过程:

📌 Git 工作机制简图(以 git pull 为焦点)

  1. sql复制编辑                         🌐 远程仓库(origin/dev)
  2.                                  │
  3.                           git fetch
  4.                                  ▼
  5. ───────────────────────────────────────────────────────────
  6. 🔒 本地仓库(.git)               ← fetch 拿到远程提交记录
  7.   └─ refs/remotes/origin/dev     ← 更新远程分支引用
  8.                                  │
  9.                             git merge(或 rebase)
  10.                                  ▼
  11. ───────────────────────────────────────────────────────────
  12. 📂 当前分支(如 dev)
  13.   └─ 本地代码文件夹(工作目录)
  14.      └─ src/
  15.      └─ controller/UserController.java
  16.      └─ pom.xml
复制代码

🧠 图讲授明:

步调说明git fetch只是把远程最新的提交记录下载到本地(不影响工作目录)git pull = git fetch + git merge拉取远程代码并合并到你当前分支,代码文件就会变了git merge把远程 dev 分支的变更合并到本地 dev 分支工作目录你看到的本地项目文件会更新,直接影响你开发的代码

✅ 对应命令流程(你实行的是)

  1. bash复制编辑git checkout dev         # 切换到主开发分支
  2. git pull origin dev      # 拉取远程 dev 的代码合并到当前工作目录
复制代码
实行完之后:


  • .git 堆栈更新:记录了新的提交
  • 工作目录更新:你能看到的代码已经是最新的了!

🧭 小结:本地布局变动位置

位置被更新了吗?说明.git 目录✅Git 的本地数据库被更新工作目录✅代码文件被更新暂存区❌不涉及暂存区(除非你手动 add 小乌龟push方法

ChatGPT 说:

“小乌龟”是各人对 TortoiseGit 的昵称,它是一个图形化的 Git 工具,非常适合初学者进行 Git 操纵。
下面是 用 TortoiseGit(小乌龟)实行 push 操纵的具体图文流程👇

🐢 小乌龟 Push 操纵步调

✅ 前提条件:

你已经完成了以下工作:


  • 本地代码修改并 commit 了
  • 本地堆栈已经和远程堆栈创建关联(clone 或 remote set-url 完成)

🚀 Step 1:右键点击你的项目文件夹

在本地项目根目录,鼠标右键 ➜ 找到 TortoiseGit ➜ 点 Push...:
🖱 右键 → TortoiseGit → Push...

🚀 Step 2:弹出 Push 设置框

你会看到一个 Push 设置界面,注意以下内容:
字段说明Remote远程堆栈名,一样平常是 origin(默认)Remote Branch远程分支名,好比你当前开发的是 feature/login-api 就写这个分支名Local Branch本地当前分支,一样平常会自动匹配你如今所在的分支
✅ 默认环境下本地分支和远程分支一致就直接确认即可。

🚀 Step 3:点击“OK”

点击 OK 后,小乌龟会实行 Push 操纵。你可以在弹出的日志日志窗口看到推送过程,好比:
  1. pgsql复制编辑Pushing to origin
  2. To https://gitee.com/your/repo.git
  3. * [new branch]      feature/login-api -> feature/login-api
  4. Done
复制代码
成功后,表现你把当前分支代码成功推送到了远程堆栈!

🧭 Push 后的下一步操纵?

通常 push 成功之后,你需要:


  • 去 Gitee / GitHub 网页端发起 Pull Request / Merge Request(将你推送的分支合并到主分支)
  • 通知组长或 Code Review 人员检察代码

⚠️ 注意事项

标题说明push 报错 non-fast-forward表现远程代码有更新,建议先 pull 最新代码合并再 pushpush 不上去大概没权限或分支掩护,找管理员开权限或通过 PR 合并不知道当前分支右键 → TortoiseGit → Switch/Checkout 检察当前分支

✅ 增补:TortoiseGit 的保举用法次序


  • 拉代码(Pull):右键 → TortoiseGit → Pull
  • 切分支:右键 → TortoiseGit → Switch/Checkout
  • 提交接码(Commit):右键 → Git Commit -> "master"(分支名差别就会显示差别)
  • 推送代码(Push):右键 → TortoiseGit → Push

假如你需要,我还可以为你做一张 TortoiseGit 操纵流程图(中文图解) 大概导出为 Word/PDF 指南文档,你想要哪种情势?

您说:

假如没有其他分支能直接push feature/login-api吗

ChatGPT 说:

✅ 可以直接 push feature/login-api 分支,纵然远程堆栈还没有这个分支。
这是 Git 的正常机制,也是企业开发中创建新功能分支的通例操纵。下面是具体表明和操纵方式:

🧩 场景:你创建了本地新分支 feature/login-api

  1. bash复制编辑git checkout -b feature/login-api
  2. # 开发接口...
  3. git add .
  4. git commit -m "feat: 新增用户登录接口"
复制代码

🟢 问:远程没有这个分支,可以直接 push 吗?

✅ 可以,Git 会自动创建远程分支,只要你指定了要 push 到哪:
  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. git push origin feature/login-api
复制代码
大概在 TortoiseGit 中:


  • 右键 → TortoiseGit → Push...
  • 选择:

    • Local Branch: feature/login-api
    • Remote Branch: feature/login-api

  • 勾选:Track(让本地分支跟踪远程)
  • 点击 OK
🟢 成功后,远程堆栈就会出现 feature/login-api 分支了。

🔄 后续:多人协作中该怎么办?


  • 你 push 后,其他人可以实行:
    1. bash复制编辑git fetch origin
    2. git checkout feature/login-api
    复制代码
    就能拉到你新建的分支。
  • 大概直接:
    1. bash
    2. ​
    3. ​
    4. 复制编辑
    5. git checkout -b feature/login-api origin/feature/login-api
    复制代码

🔒 注意事项

环境是否可行说明远程没有该分支✅ 可 pushGit 会自动创建远程分支公司禁用推送新分支❌ 不可 push某些团队设置了分支掩护,需开通权限或走 PR 流程本地未提交 commit❌ 不可 pushGit 不允许 push 空分支(没提交记录)

🎯 建议:首次 push 用这个命令更规范

  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. git push -u origin feature/login-api
复制代码
含义:


  • -u:让本地分支和远程分支创建“追踪关系”
  • 之后你可以简化为 git push,不再每次写全命令

假如你想,我可以提供一个企业标准分支定名规范文档(如 feature/xxx、bugfix/xxx、hotfix/xxx)供团队使用。是否需要?

您说:

这里我直接push Remote Branch: master/exp3 全程有master分支没有exp3 结果报错git.exe push --progress "origin" master:master/exp3 Total 0 (delta 0), reused 0 (delta 0), pack-reused 0 (from 0) remote: Powered by GITEE.COM [1.1.5] remote: Set trace flag 4145f99b remote: error: cannot lock ref 'refs/heads/master/exp3': 'refs/heads/master' exists; cannot create 'refs/heads/master/exp3' To Klong.k/webLearn ! [remote rejected] master -> master/exp3 (failed to update ref) error: failed to push some refs to 'Klong.k/webLearn' git did not exit cleanly (exit code 1) (1907 ms @ 2025/5/28 18:31:41)

ChatGPT 说:

你这个报错是由于:你试图把本地的 master 分支 push 到远程的 master/exp3 分支,而这种“斜杠定名”的分支名是不合法的(由于它会跟已有的 master 分支路径辩论)。

❌ 报错解析:

  1. txt复制编辑error: cannot lock ref 'refs/heads/master/exp3':
  2. 'refs/heads/master' exists; cannot create 'refs/heads/master/exp3'
复制代码
意思是:


  • 你要创建一个叫 master/exp3 的分支
  • 但远程已经有一个 master 分支了,它是 refs/heads/master
  • Git 的分支布局本质是目录,假如 master 是一个文件(即分支),就不能在它下面再建文件夹 exp3,会辩论!

✅ 正确做法:

✅ 1. 不要用 master/exp3,建议用 exp3 或 feature/exp3

  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. git push origin master:exp3
复制代码
意思是:把本地 master 推送为远程的 exp3 分支
大概建议更企业化一点:
  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. git push origin master:feature/exp3
复制代码

🚫 不保举的 Remote Branch 名:

错误定名原因master/exp3会与已有 master 分支辩论,Git 不允许main/xxx同理,假如已有 main 分支,也不允许

💡 建议定名规范:

类型建议定名新功能feature/xxx修复标题bugfix/xxx紧急修复hotfix/xxx试验功能exp/xxx 或 test/xxx

✅ 小乌龟 TortoiseGit 中怎么改?

在 Push 对话框中:


  • Local Branch: master
  • Remote Branch: 改成:feature/exp3(不要带斜杠前缀的分支名)
然后点击 OK 即可。

需要我给你一张 “远程分支定名辩论与规范”图解图大概做一份小团队 Git 流程规范文档吗?我可以帮你一键生成。

您说:

那么在开发过程中会不会有别人也是feature/接口名呢

ChatGPT 说:

非常好的标题!这确实是多人协作中 Git 分支管理的焦点标题之一。下面我从现实项目经验出发,具体回答:

✅ 会不会有别人也用 feature/接口名?

答案是:

   有大概,但在成熟团队中一样平常不会辩论 —— 由于每个人定名时会加上前缀(如姓名、工号、缩写)或用 issue 编号来区分。
  
🧠 保举的企业级定名规范(防辩论)

✅ 保举定名格式:

  1. 复制编辑
  2. feature/{开发者缩写或姓名}-{功能简述}
复制代码
例子:

开发者功能分支名张三(zs)登录接口feature/zs-login-api李四(ls)用户列表接口feature/ls-user-list统一规范 + 使命编号登录功能(#123)feature/123-login

🧱 分支定名常用规范总结

类型定名格式示例功能开发feature/名字-功能feature/zhangsan-loginBug 修复bugfix/名字-标题点bugfix/lisi-404errorUI开发ui/名字-页面名ui/wangwu-homepage实验分支exp/名字-测试功能exp/test-cache-logic紧急修复hotfix/名字-描述hotfix/zz-token-expired

🚧 假如两人分支名辩论了会怎样?



  • Git 是允许你创建本身的分支的,哪怕别人也有同名分支,本地不会辩论
  • 辩论通常发生在 push 时,假如你试图 push 到远程已有的同名分支(而你和别人提交记录差别),Git 会拒绝
  1. bash
  2. ​
  3. ​
  4. 复制编辑
  5. ! [rejected]        feature/login -> feature/login (non-fast-forward)
复制代码

✅ 如何避免分支辩论(总结)

方法做法加名字缩写feature/zs-login加使命号feature/123-login查远程分支名git branch -r 或用 Gitee / GitHub 页面看已有分支建分支前拉最新代码避免误基于旧分支开发

💡 最佳实践(企业实战)

   每个人新建分支前都要:
  

  • git pull origin dev 保证是最新代码
  • 创建规范定名的分支
  • 提交时附上清晰的 commit 信息 + 分支名与 PR 描述统一
  
是否需要我为你生成一份Git 分支定名与协作规范文档(Markdown/PDF)*或写一个*公司内部 GitFlow 流程规范图?可以直接发给团队使用。需要吗?

您说:

但是 feature不是同一个分支吗 你刚刚提到一个分支下面不能有其他目录

ChatGPT 说:

非常棒的标题!你捉住了焦点:Git 分支的定名布局看起来像“目录”,但其实并不是“树形目录”那样的子布局。
下面我会清晰地帮你区分这个概念:

🧠 Git 分支名为什么可以写成 feature/login?

✅ Git 分支名是“扁平的字符串”,但允许用 / 来定名



  • 你可以把分支定名为 feature/login
  • 也可以定名为 feature/zs-login、feature/123-login
这些 / 并不是文件夹,只是 Git 用来分类定名的“视觉结果” 👉 在 Git 的内部,它们就是普通字符串。

🧩 那为什么你之前的 master/exp3 会报错?

这是关键点:
   master 是一个现实存在的分支名 当你试图创建 master/exp3 时,Git 会认为你要创建一个 以 master 为目录的分支布局, 但 Git 不允许一个“名字”既是文件又是目录。
  
✅ 类比理解(非常紧张)

环境会报错?原因已有分支叫 master,你新建 master/exp3❌ 是的master 是文件,不能创建它的“子目录”了新建 feature/zs-login、feature/ls-login✅ 不会feature/zs-login、feature/ls-login 都是扁平的全名,没有辩论新建 feature 然后新建 feature/login❌ 是的feature 已经是完整分支名,不能再变成“目录”

🛠 企业实战中怎么避免辩论?

👉 关键就是:不要用一个单词直接作为分支名,好比不要单独使用 feature、bugfix 这种通用词。
否则你就不能再创建 feature/xxx 情势的定名。

✅ 总结:什么分支定名不会辩论?

合法分支名✅feature/login✅feature/zs-login✅feature/123-login✅bugfix/null-error❌master/exp3(由于 master 已存在)❌feature(假如后续还想加 feature/login)

✅ 建议你们团队一开始就避免单词型分支名,比方:

回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表