Git:在不提交的情况下将 Cherry-Pick 应用到工作副本中

14 浏览
0 Comments

Git:在不提交的情况下将 Cherry-Pick 应用到工作副本中

我有几个分支,我想将其中某些提交应用到我的工作副本中,但不想将其保留在目标分支中。最初我尝试了cherry-pick,但后来发现不想将提交保留在目标分支中。\n所以我使用了\"cherry-pick + reset HEAD~1 --soft\"的方法。\n是否有更简单的方法,只将提交应用到工作副本中?

0
0 Comments

Git中的cherry-pick命令用于将一个或多个提交的更改应用到其他分支中。然而,有时我们只想将更改应用到当前工作目录,而不创建新的提交。

如果只是想将一个提交中的所有更改应用到当前工作目录中,可以使用apply而不是cherry-pick命令:

git show <commit> | git apply

这将应用到指定提交中的更改,但不会将它们添加到暂存区或创建新的提交。

使用apply的优点是它不会处理冲突,但也是一个缺点。

解决方法:使用apply命令将指定提交中的更改应用到当前工作目录中。

0
0 Comments

Git: Cherry-Pick到工作副本而不提交的问题出现的原因以及解决方法

在使用Git进行版本控制时,有时我们需要从一个分支中选择一个或多个提交,并将它们应用到当前分支上。这个过程被称为Cherry-Pick。但是,有时我们希望将Cherry-Pick的更改应用到工作副本中,而不进行提交,以便在后续操作中进行进一步的修改或调整。然而,这个功能在某些情况下可能会出现问题。

问题的原因是,在某些Git客户端中,默认情况下,Cherry-Pick操作会自动进行提交。这意味着在Cherry-Pick完成后,更改将被自动提交到当前分支,而不会保留在工作副本中。

为了解决这个问题,我们可以采取不同的方法,具体取决于所使用的Git客户端。

如果你正在使用终端进行Cherry-Pick操作,你可以使用以下命令将更改应用到工作副本中,而不进行提交:

git cherry-pick -n <HASH>

如果你正在使用Intellij Idea进行Cherry-Pick操作,你可以按照以下步骤进行设置:

1. 打开Intellij Idea,并转到 "Settings"(设置)。

2. 在设置页面中,选择 "Version Control"(版本控制)。

3. 在Git选项卡下,找到 "Commit automatically on cherry-pick"(在Cherry-Pick时自动提交)选项。

4. 取消选中该选项,以禁用自动提交功能。

5. 保存设置并关闭设置页面。

通过这个设置,当你在Intellij Idea中进行Cherry-Pick操作时,更改将应用到工作副本中,而不会自动进行提交。

Cherry-Pick是一个常用的Git操作,用于选择并应用提交到当前分支。然而,在某些情况下,我们希望将Cherry-Pick的更改应用到工作副本中,而不进行提交。如果你遇到了这个问题,你可以根据所使用的Git客户端采取相应的解决方法。在终端中,可以使用git cherry-pick -n <HASH>命令将更改应用到工作副本中。在Intellij Idea中,可以通过禁用 "Commit automatically on cherry-pick" 选项来达到相同的效果。这样,你就可以在后续操作中对Cherry-Pick的更改进行进一步的修改或调整。

0
0 Comments

问题的出现原因是当使用git cherry-pick命令将特定的提交应用到工作副本时,会自动创建一个新的提交。然而,有时我们可能只想将更改应用到工作副本中,而不想立即创建新的提交。

为了解决这个问题,我们可以使用git cherry-pick命令的'-n'选项,即“no commit”。这样,git cherry-pick命令将只将更改应用到工作副本中,而不会自动创建新的提交。

具体的解决方法如下:

1. 使用以下命令来应用特定提交到工作副本中:git cherry-pick -n ,其中是要应用的提交的哈希值。

2. 为了取消已经暂存的更改,可以使用以下命令:git reset。

需要注意的是,使用'-n'选项会将更改暂存起来,所以为了取消暂存的更改,需要使用git reset HEAD命令。

对于将来的读者,如果需要在此次操作之后只选择提交的某些部分,可以使用'git add -p'命令来选择需要的更改块。

以上就是解决Git cherry-pick to working copy without commit问题的方法。

0