git add -N后跟git stash - "无法合并"

Ian*_*dby 9 git git-stash

我需要存储一组包含新文件的更改 - 不删除被忽略的目录.

所以我尝试了这个:

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存储特定文件的重复因为这个问题是如何存储以前添加过的文件.我的问题是存储一个尚未添加的文件.)

Mar*_*ger 5

更新 - 进一步的测试表明,定期提交,具有讽刺意味的是,相对较好.投机措辞相应修改......


问题似乎在于git如何处理没有内容的索引条目.虽然它会围绕占位符条目进行,但是它的某些内容是不可接受的stash.(我可以想到多个潜在的挑战.最明显的是存储是由提交 - 在数据库中 - 并且没有办法在该上下文中表示"计划提交".错误消息表明致命问题在其他地方,可能与WIP提交的组合方式有关.)

你可以通过git add文件(没有-N选项)来完成.唯一的理由来,就当你有其他暂存的变更,不希望该文件的状态,在这些其他变化搞混是.

在这种情况下的折衷方案是添加文件的空版本(以便保持文件不被跟踪的占位符具有内容而不是没有内容的条目).然后你可以将真实文件放在路径上,它将被"修改"而不是"未跟踪",因此你可以在没有问题-u选项的情况下进行存储.