如何在每次git pull时强制覆盖指定文件的本地修改?
解决git pull时news.md文件的自动覆盖问题
方法一:自定义git别名,一键完成覆盖+拉取
给git加个自定义命令,执行时先把本地的news.md重置到仓库最新版本,再拉取远程代码,彻底避免冲突:
git config --global alias.pull-news '!git checkout HEAD -- news.md && git pull'
之后每次拉取直接用:
git pull-news
不用再手动执行stash、pull、apply那一套操作。
方法二:标记文件为「忽略本地修改」
如果想让git默认忽略news.md的本地改动,拉取时自动用远程版本覆盖,推荐用skip-worktree标记(比assume-unchanged更适配自动化生成文件的场景):
git update-index --skip-worktree news.md
这个命令会让git完全忽略该文件的本地修改,以后执行git pull时会直接用远程的news.md覆盖本地版本,不会再弹出冲突提示。
如果之后需要手动修改news.md(比如调整自动化生成规则),可以取消标记:
git update-index --no-skip-worktree news.md
方法三:单次拉取时强制覆盖(临时使用)
如果只是偶尔需要强制覆盖,不想修改全局配置,也可以直接执行:
git checkout origin/main -- news.md && git pull
先拉取远程main分支的news.md覆盖本地版本,再执行完整pull操作。
内容的提问来源于stack exchange,提问作者Alez
相关产品推荐
相关产品推荐

