git
文章平均质量分 91
Dontla
Life is short, I use AI.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Git脏树(Dirty Tree)介绍(指工作目录中存在未提交修改的状态)已修改、未跟踪、git status、线上线下不一致问题
在Git术语中,脏树指的是工作目录中存在未提交修改的状态。当你运行git status命令时,如果看到任何"Changes not staged for commit"或"Untracked files"的提示,那么你的工作树就是"脏"的。脏树是Git工作流中一个简单但重要的概念。✅ 提高代码部署的可靠性和可追溯性✅ 避免线上线下不一致的问题✅ 符合企业安全和审计要求✅ 建立更专业的开发流程部署前,确保工作树是干净的。这不仅是技术要求,更是工程素养的体现。延伸阅读git status。原创 2026-07-04 17:54:17 · 423 阅读 · 0 评论 -
Git参数大全(git命令)
方便通过博客目录快速查阅。原创 2026-07-03 16:42:04 · 502 阅读 · 0 评论 -
SSH客户端~/.ssh/config配置文件格式介绍(Host块、配置项、HostName、Host别名、IdentityFile、ForwardAgent、SSH配置文件、SSH config)
文件是SSH客户端配置文件,使用特定的文本格式。这个文件权限应该设置为600(原创 2026-07-01 19:30:43 · 499 阅读 · 0 评论 -
.gitkeep文件作用(让Git追踪空目录,使该目录能被纳入版本控制)!.gitkeep
文件是一个在 Git 版本控制系统中常用的占位符文件,其主要作用如下:让 Git 追踪空目录Git 默认不会追踪空目录,当你在项目中创建了空文件夹时,Git 会忽略它们。 文件通过放置在空目录中,使得该目录能够被纳入版本控制。这两行 配置的含义如下:组合效果实际用途这种配置模式通常用于:这样配置可以忽略目录中的所有文件,但保留 文件和目录本身。总之, 是一个简单但实用的工具,用于解决 Git 不追踪空目录的问题,帮助维护项目结构的完整性。ᅟᅠ ᅟᅠ ᅟᅠ原创 2026-06-08 15:17:44 · 394 阅读 · 0 评论 -
GitHub临时分支(Temporary Branch)介绍(为了解决某个短期需求而创建,在任务完成后会被删除的分支)(git checkout -b、git push origin)使用保护分支
临时分支(Temporary Branch)指的是:为了解决某个短期需求而创建,在任务完成后会被删除的分支。生命周期短(几小时到几天)目标明确(只做一件事)完成后立即删除不参与长期维护提升开发隔离性降低主分支风险支持快速试错与回滚改善团队协作体验用临时分支做“短平快”的事情,用完就删,干净利落。临时分支 = 探索阶段开发分支 = 实现阶段临时分支(试验)↓(确定方案)开发分支(正式开发)↓main(发布)临时分支解决的是“试一试”的问题。原创 2026-05-08 05:13:03 · 580 阅读 · 0 评论 -
Git Checkout介绍(让工作区回到某个指定状态,可以是某个分支、某个提交、某个文件版本)(切换到指定提交detached HEAD,注意容易丢失)git HEAD、恢复文件
的本质作用可以概括为一句话:👉让工作区(working directory)回到某个指定状态某个分支(branch)某个提交(commit)某个文件版本(file snapshot)功能checkout新命令切换分支✅git switch创建分支✅恢复文件✅语义清晰❌✅新项目推荐使用老项目仍大量使用checkout是 Git 中最“多面手”的命令之一:切换分支创建分支回到历史版本恢复文件但也正因为功能复杂:👉容易误用、容易出错。原创 2026-05-08 04:33:29 · 812 阅读 · 0 评论 -
Git Revert命令介绍(创建一个新的提交,用来反向抵消某个历史提交的修改)反向提交(推荐)、Revert Merge提交、git revert -m选择主父分支、revert适合线上
git revert用于:创建一个新的提交,用来“反向抵消”某个历史提交的修改。举个例子:C 有问题Git 不会删除C。D = C 的反向操作C 添加的内容 → D 删除C 删除的内容 → D 恢复对比项git revertgit reset是否改写历史否是是否安全高较低是否适合公共分支是否是否删除 commit否是是否容易影响团队不容易容易常见用途撤销线上问题本地整理提交git revert是:Git 中最安全的“撤销提交”方式。不删除历史。原创 2026-05-08 04:15:32 · 796 阅读 · 0 评论 -
Git Reflog命令介绍(Reference Log引用日志,记录Git中引用ref的变化历史)可用于恢复代码、HEAD@{n}、误删分支恢复、不可达对象、git gc、代码找回
reflog的全称:Reference Log(引用日志)它记录的是:Git 中“引用(ref)”的变化历史。HEAD 指向变化分支移动resetmergerebasecheckoutcommit都会被记录。git reflogHEAD 当前在哪里HEAD 之前在哪里每一步发生了什么操作是一个恢复/回退操作,让你回到 2 次操作之前的状态,而不是切换到某个分支。它是 Git 的"后悔药"功能之一,用于在误操作后找回丢失的工作。git reflog。原创 2026-05-08 03:37:45 · 670 阅读 · 0 评论 -
Git Reset命令介绍(用于移动HEAD,并选择是否同步更新暂存区工作区)三种模式:--soft、--mixed(默认)、--hard;修改最近提交、合并多个提交、取消git add、回退版本回退
git reset是 Git 中最核心、也最容易误操作的命令之一。它真正的本质是:移动 HEAD,并决定是否同步暂存区和工作区。模式HEAD暂存区工作区soft✔❌❌mixed✔✔❌hard✔✔✔撤销 commit取消暂存拆分 commit回退版本放弃修改也可能让代码永久丢失。reset 前先git status重要修改先git stash已 push 历史优先git revert这样才能安全、高效地使用 Git。原创 2026-05-08 02:38:58 · 802 阅读 · 0 评论 -
origin/main远程跟踪分支Remote Tracking Branch介绍(非实时,只是远程状态快照)origin是默认远程仓库名、git fetch+git rebase替代git pull
推荐用代替git pull,让代码历史更清晰、冲突更少、提交更专业。(尤其适合团队协作时,避免“提交记录一团乱”的尴尬 😅)是 Git 在本地保存的“远程 main 分支快照”。不是远程实时状态不是普通开发分支由 fetch/pull 更新用于比较、同步、rebase、mergemain -> 你的本地开发分支origin/main -> 远程 main 的本地镜像真实远程仓库 -> GitHub/GitLab 上的数据。原创 2026-05-07 19:07:01 · 571 阅读 · 0 评论 -
Git Merge命令介绍(把指定分支的提交历史合并到当前分支)经典合并、Fast-Forward快进合并FF Merge、三方合并、merge commit、squash merge、合并冲突
git merge用于:把另一个分支的提交历史整合到当前分支。意思是:把分支的修改合并到当前所在分支。A──B──CF──G main这时候:无法直接快进找共同祖先比较双方改动创建 merge commitD──E/ \F──G共同祖先当前分支被合并分支三个节点。git merge是 Git 协作模型的核心。代码合并工具团队开发历史管理机制Git 分支模型commit DAG团队协作PR 工作流rebase 与 merge 的区别。原创 2026-05-07 18:37:52 · 1331 阅读 · 0 评论 -
Git Restore命令介绍(撤销工作区修改、恢复多个文件、取消暂存:--staged、同时恢复暂存区和工作区:--worktree、-SW、从指定commit恢复文件--source)
最安全、最清晰的文件恢复命令git checkout 职责混乱的问题。命令作用switch切分支restore恢复文件reset移动历史revert反向提交restore = 文件恢复专家是日常开发中最常用的 Git 命令之一。原创 2026-05-07 15:21:44 · 867 阅读 · 0 评论 -
Git三个主要区域介绍(工作区Working Directory、暂存区Index/Staging Area、仓库区Repository)
工作区就是:你当前电脑里真实可见的项目目录├── app.py暂存区(Stage / Index)是:一个“提交候选区”决定哪些修改会进入下一次 commit.git 目录中的版本数据库commit 历史branchtag(给特定的commit打标签)Git 对象版本快照区域作用正在修改的文件准备提交的内容Repository已保存历史版本工作区↓ git add暂存区仓库区真正掌握 Git 的关键:不是死记命令。理解数据在三区之间如何流动reset。原创 2026-05-07 14:32:53 · 758 阅读 · 0 评论 -
Git Branch介绍(创建分支)(分支是指向某个提交commit的指针)切换分支:git checkout、git switch;重命名分支;git HEAD
在 Git 中,分支本质上是一个指向某个提交(commit)的指针。你可以把它理解为:分支 = 一条独立的开发时间线main(或旧版本中的master当你创建新分支时,本质上只是创建了一个新的指针,不会复制代码,因此非常轻量。git branch分支 = 指针成本极低支持并行开发是团队协作基础不会用分支,就等于不会用 Git✅ 新分支基于当前HEAD指向的提交创建✅ 新分支包含完整的代码(不是空的)✅ 创建分支非常快速,因为只是创建指针,不复制文件。原创 2026-05-07 03:00:16 · 966 阅读 · 0 评论 -
VSCode插件Git Graph介绍(Git可视化管理分支、可视化Git)代码对比代码、变更对比、对比差别、文字差异、对比差异
很多 Git 操作可以通过图形界面完成,降低了命令记忆成本,提升了团队中非 Git 重度用户的上手速度。Git Graph 的核心价值并不是“替代 Git 命令”,而是让你在复杂历史下更快形成正确判断。当项目分支开始变多、协作复杂度上升后,一个清晰的提交图,往往能节省大量沟通和排查时间。在图上就能看到分支和 tag 的位置,并进行常见操作(如切换、创建、删除等)。相比纯命令行输出,定位关键提交更快,尤其在多分支并行开发时优势明显。简单说:它把“读 Git 历史”这件事,变得更像“看地图”。原创 2026-04-17 15:07:56 · 2645 阅读 · 0 评论 -
设置git邮箱git名字作用是什么?(git姓名、设置邮箱、设置名字、设置姓名、git作者标签、git Author、user.name、user.email)伪造邮箱伪造作者、绿色格子绿格子、贡献图
Git 的名字和邮箱,是写进每一次 commit 里的“作者信息身份证”,用来标记“这次改动是谁在什么时候做的”,方便协作、审计和追踪历史。标记作者身份:每个提交都有类似信息:,便于团队知道是谁改了什么。代码审查与责任追踪:在 、GitHub/GitLab 的提交记录里,都会按这个名字和邮箱展示;出问题或要讨论时,能快速找到对应的人。关联托管平台账号:GitHub / GitLab 通过邮箱,把提交与你的账号关联起来,从而在页面上显示你的头像、统计贡献度(绿色小格子)等。同一人多台设备的一致性:你在原创 2026-03-03 18:20:41 · 399 阅读 · 0 评论 -
git删除密钥(删除本地密钥、删除密码、.git-credentials)取消自动保存密钥git config --global --unset credential.helper(保存密码)
【代码】git删除密钥(删除本地密钥、删除密码、.git-credentials)取消自动保存密钥git config --global --unset credential.helper。原创 2026-03-03 17:57:37 · 557 阅读 · 0 评论 -
git查看密钥(git密码、git密钥、查看密码、git邮箱、git名称、查看邮箱)credential.helper凭据助手git token、.git-credentials、.gitconfig
(凭据助手)保存在本机的某个位置 / 密钥环中。你可以查到“存哪了”和“用的是什么 helper”,但通常。在这些地方,你能看到有一个 GitHub 相关的条目,但有些默认不允许直接查看明文,只能删除或重新输入。这类通常把 GitHub 凭据放在系统的。(尤其是保存在系统钥匙串时)。,而是通过 Git 的。原创 2026-03-03 17:52:59 · 802 阅读 · 0 评论 -
git分支改名(git改名、设置git默认分支名、git config --global init.defaultBranch <name>、git branch -m master main)
【代码】git分支改名(git改名、设置git默认分支名、git config --global init.defaultBranch <name>、git branch -m master main)原创 2026-03-03 16:15:46 · 256 阅读 · 0 评论 -
一个Git仓库中可以有多个子项目和多个README.md吗?是否背离最佳实践?(Git项目、Monorepo单仓多项目、Polyrepo多仓库)
问题结论一个 Git 仓库多个子项目✔ 合理(monorepo 是成熟实践)多个 README.md✔ 推荐做法是否背离最佳实践❌ 不一定,关键在架构清晰度。原创 2026-03-03 15:26:46 · 928 阅读 · 0 评论 -
切换sealos devbox时如何拉取代码仓库?(git拉取git pull文件冲突)The following untracked working tree files would be over
今天换sealos devbox,但是想拉取代码的时候发现目录中已经存在一些文件。原创 2026-03-03 13:57:37 · 934 阅读 · 0 评论 -
如何将本地项目推送到gitee?(本地代码推送,git仓库)存储密码、不输入密码、不输密码、保存密码、保存密钥、git config --global credential.helper store
推送时如果是 HTTPS,会提示输入 Gitee 账号密码或访问令牌(token);如果你已经配置过 SSH 密钥,推荐用 SSH 地址;否则用 HTTPS 更简单。下面按顺序给你详细步骤(假设你的项目目录是。如果想全局生效(对这台机所有仓库),可以加。用浏览器打开 Gitee 并登录你的账号。1)在 Gitee 上新建一个远程仓库;2)本地项目初始化 / 配置 Git;等密钥并在 Gitee 上添加公钥。3)把本地代码推送到 Gitee。如果是 SSH,需要你提前配置好。(或右上角 “+ 新建仓库”)。原创 2026-01-29 02:00:45 · 1788 阅读 · 0 评论 -
gitee push报错Push will publish a hidden email, make email public or abandon related commits gitee设置邮箱
提交的时候,使用了gitee不公开的邮箱,需要撤销提交,用另一个邮箱提交。原创 2026-01-29 01:53:38 · 365 阅读 · 0 评论 -
Git撤销上一次提交(撤销提交,Git回退提交)git reset、git revert、撤销commit、撤销push
Git 的设计哲学不是惩罚错误,而是赋予你修正的自由。—— 每个开发者都曾手抖过,重要的是学会安全地“后悔”原创 2026-01-29 01:49:01 · 4653 阅读 · 0 评论 -
Difference Between tortoiseGit and tortoiseSVN (tortoise icon overlays icons, icon not displayed)图标
The main difference between TortoiseGit and TortoiseSVN lies in the underlying version control system they’re designed for:https://tortoisesvn.net/https://tortoisegit.org/Both tools provide similar GUI interfaces integrated with Windows Explorer (right-c原创 2026-01-15 02:46:27 · 757 阅读 · 0 评论 -
Git error: fatal: detected dubious ownership in repository at xxx
【代码】Git error: fatal: detected dubious ownership in repository at xxx。原创 2026-01-15 02:36:45 · 847 阅读 · 0 评论 -
Git提交类型介绍(Git提交关键字、Git关键字、Git关键词)Conventional Commits规范、conventional-changelog、SemVer
规范,帮助团队统一提交风格、自动化生成文档(如 Changelog)和版本管理。在 Git 提交中,常见的关键字(提交类型)主要用于描述提交的性质和目的。:修改构建流程或依赖(如打包脚本、CI/CD 配置)。:引入不兼容的修改(需在 Footer 中说明)。:代码格式优化(如缩进、空格),不改变逻辑。:重构代码结构,不新增功能或修复 Bug。:对现有功能的优化(非重构或性能优化)。:修改文档(如 README、注释)。:优化代码性能(如减少时间复杂度)。:表示正在进行的开发(非正式提交)。原创 2025-08-20 16:03:38 · 1457 阅读 · 0 评论 -
GitHub分支保护介绍(Branch Protection)(git分支保护)(通过设置规则和权限来限制对特定分支的操作的功能)
GitHub 分支保护(Branch Protection)是一种通过设置规则和权限来限制对特定分支的操作的功能,旨在确保代码的安全性、稳定性和协作流程的规范性。它主要用于保护关键分支(如主分支。通过合理配置 GitHub 分支保护规则,可以显著提升代码库的稳定性和团队协作效率,同时降低因误操作或未审查代码导致的风险。、开发分支等),防止意外修改或未经授权的操作。原创 2025-08-13 19:57:52 · 2891 阅读 · 0 评论 -
Github desktop介绍(GitHub官方推出的一款图形化桌面工具,旨在简化Git和GitHub的使用流程)
GitHub Desktop 的核心价值在于。原创 2025-08-13 19:43:10 · 1925 阅读 · 0 评论 -
Squash Merge(压缩合并)和Rebase Merge(变基合并)介绍
将功能分支的提交重新应用到主分支上,最终以线性历史合并。它允许在合并前手动整理提交(如合并、删除、修改提交信息),同时保留原始提交的作者信息。是 Git 中两种常见的分支合并方式,它们都旨在简化提交历史或保留更清晰的开发记录,但实现方式和适用场景不同。,然后合并到主分支。这种方式会丢失原始提交的细节,但能保持主分支的提交历史简洁。,可以更好地管理 Git 提交历史,平衡简洁性与可追溯性。将目标分支的所有提交(例如功能分支的多个提交)原创 2025-08-13 16:25:50 · 1720 阅读 · 0 评论 -
Personal Access Token(PAT)介绍(一种用于身份验证的安全令牌,常用于访问 Git 托管平台(如 GitHub、GitLab)的远程仓库)git令牌
1. 基本概念定义:Personal Access Token (PAT) 是一种用于身份验证的安全令牌,常用于访问 Git 托管平台(如 GitHub、GitLab)的远程仓库。它替代传统密码,提供更灵活和可控的访问权限管理。优势灵活性:可为不同用途生成独立令牌,并设置不同的权限范围。可控性:可随时撤销或更新令牌,降低长期使用密码的风险。安全性:相比密码,PAT 可以更细粒度地控制访问权限(如仅允许读取仓库)。2. PAT 的生成步骤。原创 2025-07-25 19:55:41 · 2648 阅读 · 0 评论 -
Windows控制台git文件名显示转义符而不是中文字符(解决方法:设置git禁用路径转义)git config --global core.quotepath false
【代码】Windows控制台git文件名显示转义符而不是中文字符(解决方法:设置git禁用路径转义)git config --global core.quotepath false。原创 2025-06-13 13:56:30 · 995 阅读 · 0 评论 -
git引用概念(git reference,git ref)(简化对复杂SHA-1哈希值的管理)(分支引用、标签引用、HEAD引用、远程引用、特殊引用)
引用是 Git 的核心机制之一,它们通过。原创 2025-06-04 22:46:20 · 1707 阅读 · 0 评论 -
git remote update介绍(更新本地仓库中所有配置的远程仓库引用,从远程仓库拉取最新的分支和提交信息,并更新本地的远程跟踪分支,不会自动合并或修改本地分支)
是 Git 中用于更新本地仓库中所有配置的远程仓库引用的命令。它的主要作用是从远程仓库拉取最新的分支和提交信息,并更新本地的。是一个高效管理多远程仓库的工具,特别适合需要同步多个远程仓库状态的场景。如果你只需要更新单个远程仓库(如。选项,可以清理本地已失效的远程分支引用(如远程仓库中被删除的。当你需要同时更新多个远程仓库(如协作开发中的。如果需要一次性更新所有远程仓库,查看远程分支后,可以通过。确保这些分支信息是最新的。原创 2025-06-04 22:09:03 · 1614 阅读 · 0 评论 -
git报错:fatal: detected dubious ownership in repository xxx
参考文章:目录属性TurtoiseGit提示:libgit2 returned: repository path xxx is not owned by current user.(没太懂)ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ ᅟᅠ原创 2025-06-04 17:42:21 · 1224 阅读 · 0 评论 -
git rebase含义(git变基)(改变当前分支的基底base commit,将一个分支的提交历史重新应用到当前分支上,使提交历史看起来像是直接在目标分支的基础上开发的一样)
从而保持提交历史的线性。它的核心作用是**“变基”**(rebase),即改变当前分支的“基底”(base commit),使提交历史看起来像是直接在目标分支的基础上开发的一样。是 Git 中的一个核心命令,用于。提交C (master最新提交)提交D (feature新增)提交E (feature新增)提交D' (重放D)提交E' (重放E)原创 2025-06-04 14:10:17 · 1949 阅读 · 0 评论 -
目录属性TurtoiseGit提示:libgit2 returned: repository path xxx is not owned by current user.(没太懂)
Git 从 2.35 版本开始引入了这一机制,目的是防止未授权用户操作不属于自己的 Git 仓库。这个错误提示是由于 Git 的安全机制()检测到当前用户对指定仓库目录(执行了下面这条命令后,暂时没有报。原创 2025-06-04 11:16:06 · 2104 阅读 · 0 评论 -
TurtoiseGit提示:Git采用分层次的配置结构。即配置有多个层次,高层次的设置会覆盖低层次的设置。 实际生效选项卡显示了您在当前范围的有效值(只读状态)。git分层配置、git配置结构、没搞懂
中,Git 的配置分为多个层次(系统级、用户级、仓库级),这些层次的配置存在覆盖关系。打开 TortoiseGit 配置界面(右键文件夹 > 设置 > Git > 配置)。Git 采用分层次的配置结构,即配置有多个层次,高层次的设置会覆盖低层次的设置。切换到 “系统级”、“用户级” 或 “仓库级” 选项卡,查看对应层级的原始配置。在 “实际生效” 选项卡中,可以看到当前仓库所有配置的最终值。“实际生效”选项卡显示了您在当前范围的有效值(只读状态)。选择要更改设置的一个层次,然后输入或选择要存储的值。原创 2025-06-04 10:42:52 · 1059 阅读 · 0 评论 -
git pull、git pull origin master、git pull origin dev、git pull origin、git pull master(×)区别
【代码】git pull、git pull origin master、git pull origin dev、git pull origin、git pull master(×)区别。原创 2025-06-03 22:46:04 · 1361 阅读 · 0 评论 -
git不同分支含义(git分支)(FETCH_HEAD、remotes/origin/HEAD、remotes/origin/master、remotes/origin/dev)
分支图中,不同颜色代表不同类型的分支(绿色为本地分支,洋红色为远程分支)。右键点击仓库文件夹 ->原创 2025-06-03 22:41:00 · 1705 阅读 · 0 评论
分享