我正在使用该--intent-to-add选项git add轻松添加文件git commit -a.然而,这似乎令人困惑git stash.例如:
git init
touch a
git add a
git commit -m 1
touch b
git add --intent-to-add b
git stash --include-untracked
Run Code Online (Sandbox Code Playgroud)
给出输出git stash:
error: Entry 'b' not uptodate. Cannot merge.
Cannot save the current worktree state
Run Code Online (Sandbox Code Playgroud)
为什么会这样?可以修复吗?
鉴于git stash无论如何git stash pop都会清除索引,我会首先git reset --keep清除索引。(使用--keep,这不会更改您的本地文件或提交,它只会清除索引。)
git reset --keep
git stash --include-untracked
Run Code Online (Sandbox Code Playgroud)
一旦你完成了你需要隐藏的事情,你就必须重做,git add --intent-to-add b因为你通过重置撤消了它:
git stash pop
git add --intent-to-add b
Run Code Online (Sandbox Code Playgroud)
至于为什么会出现这种情况,我不知道。对我来说这似乎是一个错误......git add毕竟你可以藏一个普通的。