我需要隐藏一组包含新文件的更改 - 没有deleting ignored directories。
所以我尝试了这个:
git add --intent-to-add myNewFile.txt
git stash
结果是:
error: Entry 'myNewFile.txt' not uptodate. Cannot merge.
Cannot save the current worktree state
如何隐藏已修改的文件以及一个或多个选定的新文件,但不影响任何其他文件或目录(尤其是.gitignore
中的文件或目录)?
(这不是how can I git stash a specific file?的副本,因为这个问题是如何存储以前添加过的文件。我的问题是存储已添加尚未的文件。)
答案 0 :(得分:5)
更新 - 进一步的测试显示,具有讽刺意味的是,常规提交效果相对较好。相应修改了推测性措辞......
问题似乎在于git如何处理没有内容的索引条目。虽然它会围绕占位符条目提交,但stash
不接受它。 (我可以想到多个潜在的挑战。最明显的是存储是由提交 - 在数据库中 - 并且没有办法在该上下文中表示“计划提交”。错误消息表明致命问题在其他地方,可能与WIP提交的组合方式有关。)
可能只需git add
文件(没有-N
选项)就可以了。 不的唯一原因是,如果您有其他阶段性更改,并且不希望该文件的状态在其他更改中混淆。
在这种情况下的折衷方案是添加文件的空版本(以便使文件不被跟踪的占位符具有空内容而不是没有内容的条目) 。然后,您可以将真实文件放在路径中,它将被“修改”而不是“未跟踪”,因此您可以在没有问题-u
选项的情况下进行存储。