你如何告诉git只存储索引?

我刚刚使用“git add -p”向索引添加了一堆更改,并且我意识到我错过了应该进入前一个提交的更改。

我现在无法提交 - 现在就申请,因为我已将所有这些新更改添加到索引中,并且我不想使用'git reset'将它们全部从索引中删除,因为它需要很长时间才能将它们全部添加又回来了。

我需要的就是'git stash',它只会隐藏索引 - 它应该保留工作文件。 然后,我可以隐藏索引,添加缺失的变化,将其提交,然后弹出存储并使索引恢复原样。

它看起来不像'git stash'能够做到这一点,但我错过了什么? 谢谢!


最简单的方法是立即停止这种改变,做出新的提交,然后创建第二次提交,只需要修改那个修改,然后使用git rebase -i将其与原始HEAD压缩。

另一种方法是做你的提交,标记它,用git reset HEAD^回滚,添加一个改变并修改HEAD,然后选择你的标记提交。


我找到的最接近的东西就是git stash --patch 。 它会引导您完成对工作树和索引的每个更改,让您选择要存储的内容。

http://www.kernel.org/pub/software/scm/git/docs/git-stash.html


提交你的索引,创建一个修复提交,并使用autosquash重定位:

git commit
git add -p                         # add the change forgotten from HEAD^
git commit --fixup HEAD^           # commits with "fixup! <commit message of HEAD^>"
git rebase --autosquash -i HEAD~3
链接地址: http://www.djcxy.com/p/24505.html

上一篇: How do you tell git to stash the index only?

下一篇: Git: Stash just a single file