我需要存储一组包含新文件的更改 - 不删除被忽略的目录.
所以我尝试了这个:
git add --intent-to-add myNewFile.txt
git stash
Run Code Online (Sandbox Code Playgroud)
结果是:
error: Entry 'myNewFile.txt' not uptodate. Cannot merge.
Cannot save the current worktree state
Run Code Online (Sandbox Code Playgroud)
如何隐藏已修改的文件以及一个或多个选定的新文件,但不影响任何其他文件或目录(特别是那些文件或目录.gitignore)?
(这不是我如何git存储特定文件的重复?因为这个问题是如何存储以前添加过的文件.我的问题是存储一个尚未添加的文件.)
更新 - 进一步的测试表明,定期提交,具有讽刺意味的是,相对较好.投机措辞相应修改......
问题似乎在于git如何处理没有内容的索引条目.虽然它会围绕占位符条目进行,但是它的某些内容是不可接受的stash.(我可以想到多个潜在的挑战.最明显的是存储是由提交 - 在数据库中 - 并且没有办法在该上下文中表示"计划提交".错误消息表明致命问题在其他地方,可能与WIP提交的组合方式有关.)
你可以通过git add文件(没有-N选项)来完成.唯一的理由不来,就当你有其他暂存的变更,不希望该文件的状态,在这些其他变化搞混是.
在这种情况下的折衷方案是添加文件的空版本(以便保持文件不被跟踪的占位符具有空内容而不是没有内容的条目).然后你可以将真实文件放在路径上,它将被"修改"而不是"未跟踪",因此你可以在没有问题-u选项的情况下进行存储.