撤消由 git cherry-pick -n <hash> 失败引起的本地更改
Undo local changes caused by failed git cherry-pick -n <hash>
我正在尝试使用 "git cherry-pick -n hash" 从我的 dev 分支获取多个提交到我的 uat 分支,然后只使用一个 git commit/push 将它们发送到 uat。
假设我有 5 个我想要的提交,所以我结帐并拉出我的 uat 分支并开始从开发人员中挑选。前 4 次 cherry-picks 成功,但第 5 次因合并冲突而失败。我如何 return 到以前的状态(在第 4 个 "git cherry-pick -n 4th_hash" 之后?
"git reset --merge" 撤消所有更改(包括我想要的前 4 个)。
"git cherry-pick --abort" 表示没有正在进行的 cherry-pick。
有什么方法可以做到这一点吗?我正在尝试创建一个 bash 脚本来自动执行此操作。
我不确定如果您有冲突,您希望如何在脚本中自动执行此操作。但不管它。如果您想保存以前的状态,我建议您删除 -n
标志。
所以执行:
git cherry-pick <hash>
对于您想要的每个提交,完成后将它们压缩在一起。
git reset --soft HEAD~5
git commit
其中 5
是您刚刚选择的次数。所以它可以和脚本一样工作。
我正在尝试使用 "git cherry-pick -n hash" 从我的 dev 分支获取多个提交到我的 uat 分支,然后只使用一个 git commit/push 将它们发送到 uat。
假设我有 5 个我想要的提交,所以我结帐并拉出我的 uat 分支并开始从开发人员中挑选。前 4 次 cherry-picks 成功,但第 5 次因合并冲突而失败。我如何 return 到以前的状态(在第 4 个 "git cherry-pick -n 4th_hash" 之后?
"git reset --merge" 撤消所有更改(包括我想要的前 4 个)。 "git cherry-pick --abort" 表示没有正在进行的 cherry-pick。
有什么方法可以做到这一点吗?我正在尝试创建一个 bash 脚本来自动执行此操作。
我不确定如果您有冲突,您希望如何在脚本中自动执行此操作。但不管它。如果您想保存以前的状态,我建议您删除 -n
标志。
所以执行:
git cherry-pick <hash>
对于您想要的每个提交,完成后将它们压缩在一起。
git reset --soft HEAD~5
git commit
其中 5
是您刚刚选择的次数。所以它可以和脚本一样工作。