gpt4 book ai didi

Git 瓷器命令将单个文件恢复到其 HEAD 状态但保持其暂存状态?

转载 作者:太空狗 更新时间:2023-10-29 13:41:21 25 4
gpt4 key购买 nike

是否有 git porcelain 命令可以将暂存文件的工作目录状态恢复为 HEAD 状态,同时保持文件的暂存状态?稍后我希望能够将工作目录状态恢复为文件的暂存状态。我最初的想法是使用 git checkout HEAD -- targetfile,但它也会重置文件的暂存状态。我发现这可以通过 git stash 实现,但它会影响其他文件,而我想专注于单个文件并保持其他文件的状态不变,否则可能会导致 merge 冲突:

git add targetfile
git stash
... // modify tagetfile in seeking of different task solution, possibly modifying other files too
git checkout HEAD -- targetfile //drop the different solution attempt, keep other modified files if any
git stash apply --index // revert to the stashed staged solution, but produces merge conflict for other modified files

我找到了一个不错的 article最后带有汇总表,缺少此问题中描述的场景。在我看来,这应该很容易实现,但令我惊讶的是,staged 和 working dir 状态如此紧密地耦合 - 您可以重置文件的 staged 状态,同时保留其工作目录状态,但我很难做到相反。

最佳答案

这不是很好,因为它无法正确获取文件的可执行状态,但在推送时您可以:

git show HEAD:targetfile > targetfile

理想情况下,人们会想要 --working-tree-only 选项用于 git checkout HEAD -- targetfile,但我不知道类似的东西。

关于Git 瓷器命令将单个文件恢复到其 HEAD 状态但保持其暂存状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16335799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com