给公司做门户网站 可以用凡客吗想开网店不知道怎么开
2026/1/9 12:12:42 网站建设 项目流程
给公司做门户网站 可以用凡客吗,想开网店不知道怎么开,免费制作ai视频的软件,网站建设原因分析Git魔法#xff1a;如何安全地“偷师”远程更新#xff0c;同时保留自己的“独门秘籍” 大家好#xff01;今天我们来聊一个Git使用中非常经典的场景#xff1a;如何只拉取远程仓库的新文件#xff0c;同时保留自己本地的修改#xff1f; 想象一下这个场景#xff1a;你…Git魔法如何安全地“偷师”远程更新同时保留自己的“独门秘籍”大家好今天我们来聊一个Git使用中非常经典的场景如何只拉取远程仓库的新文件同时保留自己本地的修改想象一下这个场景你正在潜心研究一套绝世武功修改本地代码突然听说武林盟主远程仓库发布了新的招式新提交。你既想学习新招式又不想中断自己正在修炼的武功。这时候该怎么办呢一、问题现场重现我们先来看看问题出现的典型场景# 你正在某个Git仓库中工作# 发现有一个文件被你修改了M ModelAccuracyAnalysis/model_validation.py# 你的本地分支领先远程3个提交您的分支领先origin/sit共3个提交。# 你想拉取远程更新但git pull后提示已经是最新的。这里有个关键点git pull实际上做了两件事git fetch下载远程的所有更新git merge将远程更新合并到本地分支问题就出在第二步Git会尝试合并如果你本地有未提交的修改可能会产生冲突或者Git会拒绝合并。二、5种解决方案大PK方案一乾坤大挪移法git stash⭐推荐⭐这是最安全、最常用的方法就像武侠小说中的乾坤大挪移——先把你的内力本地修改暂时转移到一个安全的地方。三步神操作# 第一步暂存内力把本地修改藏起来gitstash# 输出示例Saved working directory and index state WIP on sit: 47a3b2d 上次提交的信息# 第二步吸收新功法拉取远程更新gitpull# 第三步恢复内力把藏起来的修改拿回来gitstash pop比喻解释git stash就像把你的笔记暂时放进保险箱git pull专心听老师远程仓库讲新课git stash pop听完课后从保险箱拿出笔记继续研究如果发生冲突怎么办如果恢复时提示冲突别慌Git会在冲突文件中用特殊标记标出 Updated upstream 远程版本的内容 你的版本的内容 Stashed changes你需要手动编辑文件保留你想要的内容删除这些特殊标记使用git add 文件名标记冲突已解决进阶技巧# 查看所有藏起来的修改gitstash list# 应用特定的藏匿记录不删除gitstash apply stash{0}# 删除藏匿记录gitstash drop stash{0}方案二分筋错骨手选择性拉取如果你只想拉取特定的新文件不想要全部更新# 第一步查看远程有什么新东西gitfetch origin# 第二步列出远程和本地的差异gitdiff--name-only HEAD origin/sit# 第三步只拉取需要的文件gitcheckout origin/sit -- 文件路径/文件名适合场景你只想更新某个配置文件你知道远程只更新了几个特定文件你不想更新所有内容方案三左右互搏术先提交再合并如果你觉得自己的修改已经比较完整可以作为一个版本# 第一步把你的修炼成果记录下来gitaddModelAccuracyAnalysis/model_validation.pygitcommit -m我的独特改进# 第二步学习新招式gitpull# 第三步如果有冲突手动化解# Git会提示冲突你需要编辑文件解决冲突# 然后git add 文件名 和 git commit优点保留了完整的修改历史缺点如果你的修改还不完善可能不想提交方案四凌波微步rebase大法适合喜欢保持干净历史的同学# 第一步获取远程更新不合并gitfetch origin# 第二步重新整理你的修改放在最新版本之上gitrebase origin/sit# 如果有冲突解决冲突后继续gitadd.gitrebase --continue# 如果想放弃rebasegitrebase --abortrebase vs merge的区别merge创建一个新的合并提交历史记录有分支rebase把你的修改重新播放在最新版本上历史是一条直线方案五隔空取物只查看不拉取如果你只是想看看远程有什么新东西# 查看远程新增了哪些文件gitlog origin/sit --name-only --oneline -5# 查看某个特定文件的远程版本内容gitshow origin/sit:文件路径三、实际应用场景分析场景1紧急修复bug你正在开发新功能老板突然让你紧急修复一个bug# 1. 暂存新功能代码gitstash# 2. 切换到修复bug的分支gitcheckout hotfix-branch# 3. 修复bug并提交# 4. 回到原分支继续开发gitcheckout feature-branchgitstash pop场景2团队协作更新团队更新了基础库你需要同步但保留自己的业务代码# 1. 提交自己的业务代码如果已完成gitcommit -m业务逻辑实现# 2. 拉取基础库更新gitpull# 3. 如果有冲突基础库的更新优先# 使用git checkout --theirs 文件路径 接受远程版本# 或git checkout --ours 文件路径 保留自己的版本场景3长期开发分支你在自己的分支上开发了很长时间需要同步主分支# 1. 保存所有修改gitstash# 2. 拉取主分支最新代码gitcheckout maingitpull# 3. 回到自己的分支基于最新main重新开发gitcheckout your-branchgitrebase main# 4. 恢复修改gitstash pop四、Git工作原理小课堂理解这些操作背后的原理能让你更好地掌握Git工作区、暂存区、仓库工作区你看到的文件暂存区git add后的临时存储仓库git commit后的永久存储git stash的工作原理创建一个特殊的提交保存工作区和暂存区的状态这个提交不在任何分支上但可以通过stash命令访问stash的存储是栈结构可以保存多个状态分支与合并的本质分支就是指向某个提交的指针合并就是把两个分支的修改整合到一起冲突就是同一个文件在同一位置有不同的修改五、常见错误与避免方法❌错误1直接git pull导致冲突✅ 解决方案先stash或commit❌错误2stash后忘记pop✅ 解决方案定期git stash list查看❌错误3解决冲突时删错了代码✅ 解决方案使用git checkout --merge 文件名恢复到冲突前状态❌错误4rebase到一半不会继续✅ 解决方案记住三板斧解决冲突 →git add→git rebase --continue六、Git配置小技巧让你的Git体验更丝滑# 设置pull时默认使用rebasegitconfig --global pull.rebasetrue# 设置好看的log格式gitconfig --global alias.lglog --color --graph --prettyformat:%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)%an%Creset --abbrev-commit# 设置stash时包含未跟踪的文件gitconfig --global stash.showIncludeUntrackedtrue七、总结记住这个黄金法则当你想保留本地修改又要拉取远程更新时首先考虑git stash。就像学武功一样先把自己的招式记下来stash专心学习新招式pull融会贯通stash pop 解决冲突Git的这些操作看似复杂但理解了背后的逻辑后你会发现它们就像一套精妙的武功招式用得越多越熟练。最后送给大家一句话“Git不是魔法只是你没看懂它的说明书。”多练习多尝试你也能成为Git高手如果你觉得这篇文章有帮助欢迎点赞收藏有什么问题也可以在评论区留言我们一起讨论

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询