git
文章平均质量分 92
未收敛
【正在从算法转全栈ing】喜欢折腾AI和数据的小创作者,爱把复杂的技术讲得简单有趣,也喜欢在文字里记录灵感和思考。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【Git基础】03——Git 撤销与回退:改错了怎么办
Git撤销操作指南:根据改动层级选择对应工具。工作区未add时用git restore丢弃修改;已add未commit时用git restore --staged撤销暂存;未推送的commit可用git reset回退(分--soft/--mixed/--hard三种模式);已推送的commit必须用git revert生成反向commit。紧急切换分支时可用git stash临时保存现场。核心原则:未共享的历史可改写,已共享的只能追加修正。原创 2026-04-07 15:42:49 · 651 阅读 · 0 评论 -
【Git基础】02——分支:在不破坏主线的情况下做实验
本文介绍了Git分支的基本概念和操作。分支是独立的提交时间线,允许在不影响主分支的情况下进行开发。主要内容包括:1)创建和切换分支的命令;2)分支合并及冲突解决方法;3)推送分支到远程仓库;4)独立项目和团队协作的分支策略。关键点在于理解分支是指针而非代码副本,切换分支即切换项目快照,合并是历史合流,冲突需要人工决策。Git分支机制为开发提供了安全的试错环境,是软件开发的重要工具。原创 2026-04-07 14:58:33 · 388 阅读 · 0 评论 -
【Git 内部原理】`.git` 是怎么记住所有版本的
Git高效存储版本历史的秘密在于其独特的对象存储机制。它通过三种核心对象(blob、tree、commit)构建版本历史,并采用以下优化策略: 快照存储:每次提交记录完整项目状态,而非差异 内容去重:相同文件内容只存储一次 引用指针:分支和标签仅存储commit哈希值 智能压缩:自动压缩对象并打包相似文件 这种设计使得: 分支创建只需新增指针文件 历史版本可精确还原 项目规模增长不影响性能 通过分析.git目录结构可见,Git将版本数据集中存储在objects目录中,配合refs和HEAD指针实现高效版本管原创 2026-04-07 14:32:23 · 508 阅读 · 0 评论 -
【Git 报错处理】`remote origin already exists` 是什么意思?
Git提示"remote origin already exists"是因为默认clone操作已自动创建origin远程仓库。遇到该报错时,应先通过git remote -v查看现有配置。解决方法包括:1)直接修改地址git remote set-url origin 新地址(推荐);2)删除后重建;3)添加第二个远程仓库时使用不同名称。理解remote本质是"名称→地址"的映射关系后,这类问题就能轻松处理。原创 2026-04-07 09:56:24 · 572 阅读 · 0 评论 -
【Git 基础】01——代码是怎么被追踪的
Git是一个分布式版本控制系统,主要用于追踪文件变化历史和管理多人协作开发。核心概念包括仓库(repository)、提交(commit)和分支(branch)。基本工作流程为:初始化仓库(git init)→查看状态(git status)→暂存修改(git add)→提交(git commit)→推送至远程仓库(git push)。关键命令还包括git log查看历史记录和git pull同步最新代码。通过.gitignore文件可排除不需要版本控制的文件。Git通过保存文件快照和分支管理,有效解决了代原创 2026-04-06 23:55:20 · 525 阅读 · 0 评论 -
GitHub 多账号 SSH 配置指南:让个人和工作账号共存
本文介绍了如何通过SSH配置在一台电脑上管理多个GitHub账号。主要内容包括:生成不同账号的SSH密钥并添加到GitHub;配置~/.ssh/config文件为每个账号设置Host别名;使用别名进行仓库克隆和远程修改;以及日常使用建议。该方法能有效解决多账号冲突问题,实现自动密钥选择,提高安全性和工作效率。关键点在于正确设置Host别名与密钥的对应关系,并通过别名访问不同账号的仓库。原创 2026-03-13 11:41:13 · 563 阅读 · 0 评论 -
【Git 冲突解决】不是技巧问题,而是你是否理解「同时发生了什么」
摘要: Git冲突的本质是语义冲突而非代码错误,它反映了不同历史分支对同一代码的不同修改意图。开发者害怕冲突的真正原因是不确定如何取舍或合并这些改动,而非冲突本身。Git能自动处理大部分合并,仅在无法判断语义意图时暂停,将决策权交给开发者。冲突标记(<<<<<<<、=======、>>>>>>>)是历史分叉的可视化呈现,而非错误状态。merge冲突处理并行分支的协作问题,而rebase冲突则考验提交在新历史背景下的适用性。解原创 2026-01-21 13:43:43 · 673 阅读 · 0 评论 -
【git revert】我终于真正理解了 git revert
Git revert的设计理念:尊重历史而非抹去错误 摘要: git revert常被认为反直觉,因为它不删除错误提交,而是通过新增提交来抵消影响。这种设计体现了Git的核心价值观:已发生的代码变更应被如实记录而非抹去。在协作场景中,git revert保留了完整的因果链条,确保历史可追溯、可解释。与git reset不同,revert不会修改已有提交,只是追加修正记录,这使得它成为共享分支上最安全的回滚方式。当出现冲突时,开发者需要判断的是"在当前代码基础上如何消除当初的问题",而非简原创 2026-01-18 13:48:43 · 760 阅读 · 0 评论 -
【git reset】我终于真正理解了 git reset
Git Reset 的本质与边界:何时该用,何时不该用 Git reset 常被视为危险命令,但关键在于理解其作用原理。Git 存在三个层次:提交历史、暂存区和工作区。reset 的本质是移动 HEAD 指针,并根据三种模式(--soft/--mixed/--hard)决定是否同步暂存区和工作区。 --soft 保留改动到暂存区,适合修改提交信息;--mixed(默认)保留改动但需重新 add,适合拆分提交;--hard 彻底删除改动,适合放弃实验性代码。 使用边界在于是否影响协作: ✅ 个人分支最新提交可原创 2026-01-15 10:09:45 · 969 阅读 · 0 评论 -
【git reset】个人分支一次精准撤回 git push 的实战记录
摘要:文章记录了一次开发中误将调试日志提交到远程仓库后的处理过程。作者通过 git reset --hard HEAD~1 回退本地分支,再使用 --force-with-lease 安全强制推送远程分支,实现了无痕撤销调试提交。文章强调区分个人分支与公共分支的边界意识:个人分支可以整理历史,而公共分支应通过 revert 维护历史契约。这次经历展现了 Git 的理性本质——危险的不是命令本身,而是对协作边界的不清晰认知。原创 2026-01-14 13:16:04 · 568 阅读 · 0 评论 -
[git技巧]一次 `git push` 被拒绝的真实经历:我该 merge 还是 rebase?
本文记录了一次Git分支冲突的解决过程。作者在推送调试日志时遇到分支分叉问题,Git提示需要协调分歧分支。文章详细解释了三种处理策略:merge(安全但产生额外提交)、rebase(整洁但需谨慎)和fast-forward(理想但苛刻)。作者最终选择rebase策略,因为它能保持提交历史的线性整洁,并通过实际操作为读者展示了rebase的具体步骤和注意事项。文章最后建议将pull.rebase设为默认配置,强调理解Git历史形态选择的重要性。这次经历让作者明白Git的"奇怪报错"实际上是原创 2026-01-13 17:20:50 · 726 阅读 · 0 评论
分享