我试图忽略我的仓库(Github)中一个非常小的文件的所有更改。它是一个隐藏文件(select *
from (
select *, row_number() over (partition by userid order by paymentdue desc) rn
from #TmpTbl
where invoicename = 'EF Fee'
) t
where rn = 1
),其中包含一个字符(.first_run
)。我(显然)用它来检测我的包的第一次运行。
我遇到了这些问题:
0
无法正常工作。.gitignore
,因为它会从回购中删除该文件,这不是我想要的。git rm --cached <file>
也不起作用。如果在将git update-index --assume-unchanged <file>
应用于文件后,我将assume-unchanged
更改为更长的字符串(例如:0
),则不会显示为已更改(正确的行为)但是如果我更改了sdfgdgd
代表0
,会显示为已修改。我认为第3点中描述的问题是由于this answer中所解释的:
假设 - 未更改(..)不是Git的承诺,Git将始终认为这些路径未经修改 - 如果Git可以确定标记为假设的路径 - 未更改而没有产生额外的lstat(2)成本,它保留报告路径已被修改的权利(因此,&#34; git commit -a&#34;可以自由提交该更改)。
我有什么办法可以让4
忽略对此文件的未来更改吗?
答案 0 :(得分:3)
您应该能够停止跟踪文件的更改:
git update-index --skip-worktree <file>
您可以通过以下方式恢复跟踪更改:
git update-index --no-skip-worktree <file>
答案 1 :(得分:1)
我相信没有办法完全按照自己的意愿行事。
但是如何更改应用程序逻辑呢?即,不检查内容,检查是否存在。如果该文件不存在,则之前尚未运行您的应用。将其从存储库中删除并将其添加到.gitignore
。首次运行时,让您的应用程序使用您需要的任何内容创建文件。