【发布时间】:2017-05-23 12:38:44
【问题描述】:
我需要存储一组包含新文件的更改 - 没有 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? 的重复项,因为这个问题是如何存储以前添加的文件。我的问题是存储一个尚未添加的文件。)
【问题讨论】:
-
好吧,也许你可以在推送之前完成所有内容后提交它们并重写历史记录。
-
或者我可以手动将新文件移动到别处。或者我什至可以创建一个临时分支而不是存储。但这不是这个问题要问的。事实上,“无法合并”错误看起来像是一个错误,即使它可能只是 git 中一些深层实现细节的自然结果。
-
好吧,如果我猜对了,真正的问题是“我怎样才能存储修改后的文件以及一个或多个选定的新文件,但不影响任何其他文件或目录”。我试图为此提出一个可能的解决方案,因为似乎不可能存储特定的未跟踪文件,您可以存储 ALL 未跟踪文件或不存储文件。
-
“意图添加”的东西很老套,只是不能很好地与
git stash配合使用。作为一个不同的 hack,您可以在目录中创建一个空的未跟踪文件,这样当您存储实际添加的实际文件时,Git 不会带走本来空的目录,因为否则为空的目录中有一个未跟踪的空文件。