Git:在没有提交的情况下选择工作副本

我有几个分支,我不时地将某些提交应用到我的工作副本。最初,我尝试了樱桃采摘,但我不希望在目标分支之后提交。

所以我做了cherry-pick + reset HEAD~1 --soft

有什么更简单的像樱桃选择工作副本?

119221 次浏览

使用“-n”标记来表示“没有承诺”。

看这里:http://git-scm.com/docs/git-cherry-pick

git cherry-pick -n <HASH>

然后取消阶段性的变化

git reset

我得到的错误error: server/metadata/metadata-preui-prod.xml: No such file or directory

现在我这样做

git checkout SHA—服务器/元数据&&Git重置——server/met adata < /代码> < / p >

git show SHA -- file1.txt file2.txt | git apply -

或所有来自SHA的文件

git show SHA | git apply -

如何git-cherry-pick只改变某些文件?< / >

如果您正在使用终端

git cherry-pick -n <HASH>

如果您正在使用Intellij Idea

Settings -> Version Control -> git
untick commit automatically on cherry-pick

对于IntelliJ用户

设置在版本控制及gt;Git:取消选中自动提交

enter image description here

更新

该特性被移除,默认设置为true。 他们有很多抱怨,也许他们会把它退回去

与此同时,你可以从提交视图中使用“Cherry-Pick Selected changes”;实现相同的结果(如Neo共享的线程中所述):

enter image description here

你也可以使用apply而不是cherry-pick,如果你只是试图将你在提交中所做的所有更改应用到你的工作目录:

git show <commit> | git apply

这将应用中所做的更改,但将将它们添加到登台或创建提交。

简单地运行:

$ git cherry-pick --no-commit <HASH>

为了在Visual Studio 2019中解决这个问题而不打开控制台,我去了“Git知识库”。窗口,右键单击Git提交历史记录,然后选择我想要的提交。这将提交樱桃。但随后我在下面的提交中右键单击,并执行了“重置”操作。保持变化(—混合)”;重置提交,但保持更改未提交。