You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git如何保留本地代码变更且不将其提交到远程仓库?

Git本地留存变更不提交的解决方案

以下是不同使用场景下的操作方案,所有操作均仅作用于本地设备,不会影响远程Git仓库内容:

场景1:临时存放改动,后续可恢复/调整

适合暂时不需要提交、之后可能要重新启用或者丢弃的改动,使用git stash栈功能实现:

  • 存入当前未提交的改动到本地栈:git stash push -m "自定义改动备注",执行后工作区会恢复到最近一次提交的状态
  • 查看所有已存储的改动列表:git stash list,输出内容中stash@{x}为对应改动的编号
  • 恢复最近一次存储的改动并移除栈中记录:git stash pop
  • 恢复指定编号的改动、保留栈中记录:git stash apply stash@{x}(将x替换为对应改动的序号)
  • 删除指定编号的存储改动:git stash drop stash@{x}
  • 清空所有存储的改动:git stash clear

场景2:永久本地改动,无需提交到仓库

适合本地专属配置、测试参数这类永远不需要同步到远程的改动,分为两种情况处理:

2.1 改动是未被Git跟踪的新文件

直接编辑项目根目录的.gitignore文件,添加对应文件/目录的路径即可,Git会自动忽略匹配的内容,不会纳入待提交列表:

# 示例:忽略单个本地配置文件
config.local.js
# 示例:忽略所有后缀为.local的文件
*.local
# 示例:忽略整个本地测试目录
/test/local/

2.2 改动是已经被Git跟踪的存量文件

这类文件直接添加到.gitignore不会生效,需要用Git的本地忽略跟踪指令处理:

  • 仅临时忽略文件后续改动,远程更新该文件时会正常拉取覆盖:git update-index --assume-unchanged 文件路径
  • 适合长期修改本地配置、远程更新文件时优先保留本地改动:git update-index --skip-worktree 文件路径
  • 恢复对该文件的改动跟踪:将对应指令中的参数替换为--no-assume-unchanged或--no-skip-worktree即可
  • 查看所有被标记为本地忽略跟踪的文件:git ls-files -v | grep '^h'

注意:以上两种忽略跟踪的配置仅作用于本地仓库,不会同步到远程,也不会影响其他协作者的使用。

内容的提问来源于stack exchange,提问作者user10469417

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:06:05