fre*_*oid 7 git github git-reset
我有一些本地更改(不在单独的文件中,因此.gitignore不起作用),我不想提交.
我git reset --hard有时会在承诺清除偶尔的变化之后但是我也会失去我想要离开的有用变化.
我如何保持有用的变化?
您也可以尝试:
git update-index --skip-worktree -- file
# to cancel it:
git update-index --no-skip-worktree -- file
Run Code Online (Sandbox Code Playgroud)
它应该抵抗git reset --hard。(请参阅有关' '连字符的使用' 的答案--)。
请参阅此博客文章。
- 看起来
skip-worktree您正在非常努力地保存本地数据。但这并不会阻止您在安全的情况下进行上游更改。再加上git不会重置pull上的标志。但是,对于开发人员而言,忽略“ reset --hard”命令可能会令人讨厌。assume-unchanged标记可能会在pull操作中丢失,并且此类文件中的本地更改对git似乎并不重要。
假定不变,则假定开发人员不应更改文件。如果文件已更改–则更改并不重要。该标志旨在提高未更改的文件夹(如SDK)的性能。但是,如果没有兑现承诺,并且实际上已更改了文件,则git会将标志还原以反映实际情况。在通常不希望更改的文件夹中有一些不一致的标志可能是可以的。另一方面,
skip-worktree当您指示git永远不要触摸特定文件时,它很有用。这对于已经跟踪的配置文件很有用。上游主存储库托管一些可用于生产的配置,但您想更改配置中的某些设置以能够进行一些本地测试。而且您不想意外检查此类文件中的更改以影响生产配置。在这种情况下,skip-worktree制作完美的场景。