我的工作目录很脏,这就是我的喜好。
我想查看某个提交,但git
抱怨:
error: Your local changes to the following files would be overwritten by checkout:
足够公平。我怎么知道git
:
请不要覆盖它们。保持更改的文件不变,并且 从选定的提交中签出其余部分。
答案 0 :(得分:1)
我的工作目录很脏,这就是我喜欢它的方式。
那好吧! : - )
我怎么能告诉git:请不要覆盖它们。保持更改的文件不变,并从选定的提交中查看其余文件。
你不能 - 至少,不能直接。
为什么你想要做到这一点并不清楚,这可能会影响 你应该如何做到这一点。
请注意,可以做的一件事就是提取任何特定的提交到新的工作树(如果你的Git足够新:2.5是最小值,2.6 +更好)使用{{1 }}。如果您的Git较旧,您可以简单地将您的存储库克隆到新的克隆,并使用它将提交提取到新克隆的工作树中。
您还可以使用git worktree add
将任何特定提交打包为tar或zip存档。一旦你拥有了这个档案,你可以随心所欲地做任何事情。
这两种替代方案都有不以任何方式改变现有工作树的git archive
和索引的副作用,当然,不会改变您的任何工作 - 树文件。 (或者,最好说HEAD
具有更改git checkout
和索引的副作用,除了那些不是侧效果;这些是主要效果,因为HEAD
表示当前提交,索引为工作树编制索引,HEAD
的目的是切换提交,更新工作树。 / p>
最后一个选择是继续进行提交,这当然违反了设置的“我喜欢它”的一部分。但是您可以在临时分支上进行此提交,或者甚至根本不在任何分支上进行 - 后者是git checkout
所做的,尽管它实际上会根据您提供的参数进行两次或三次提交。提交后,您可以使用所有基于提交的工具来处理该提交,例如采摘樱桃。