git - `git update-index --skip-worktree`之后`你对以下文件的本地更改将被checkout覆盖`
问题描述
我需要对本地远程存储库中的文件进行更改,并在我执行git commit
/时让 git 忽略这些更改git push
。
已经有答案:https://stackoverflow.com/a/1753078/747050 https://stackoverflow.com/a/13631525/747050 他们都告诉使用
git update-index --skip-worktree <file-name>
当我执行此命令并更改文件,然后切换分支时git switch master
,出现错误:
error: Your local changes to the following files would be overwritten by checkout:
<file-name>
Please commit your changes or stash them before you switch branches.
既不编辑.git/info/exclude
文件也git update-index --assume-unchanged
无济于事。
解决方案
您有分支 A,其中文件包含内容 X,分支 B 包含内容 Y,然后您对已忽略的文件进行了一些本地更改skip-worktree
Z。当从分支 A 切换到 B 时,git 应该如何知道文件之后的样子?它应该看起来像 Z、Y,还是应该从 X 和 Z 中提取一些变更集,并将其应用于 Y?
skip-worktree
当文件的跟踪内容相同时工作得相当好,但是当存在差异时,切换分支时需要手动工作。
推荐阅读
- c - BGI 库可能与 64 位版本的 Windows 不兼容
- amazon-web-services - Symfony Swiftmailer - 如果凭证中有特殊字符,AWS SES 凭证不起作用
- c# - ViewModel 是否应该继承 Xamarin.Forms 中的其他 ViewModel?
- r - 在 R 中仅更改部分地图的大小
- java - 尝试房间java android studio时同步gradle错误
- android - Firebase 分析事件未显示
- python - 如何关闭框架我找不到 x 按钮的元素 - python selenium
- c# - 如何在 WinForm 终止时打开数据库连接?
- r - 如何生成具有某个恒定均值、sd、总和的 N 个随机数?
- angular - 角度动态网格瓷砖内容