我应该使用哪个 git 特性来将大提交(推送和反转)分解为更小的提交?

Which git feature should I use for breaking big commit (pushed and reversed) into smaller commits?

我使用 Atlassian SourceTree 来处理 git 存储库。

我在需要和不需要的更改混合的地方提交并推送了大提交。 我通过提交和推送反向提交回滚了它。

现在我想从那个大提交中提取所需的更改并将它们作为较小的提交提交,或者甚至可能是较小的提交序列。

哪个 SourceTree 或 git 功能最适合这个? 我想这将是其中之一:Cherry-pick、Patch、Merge 或 Reverse Commit of Reverse Commit 具有这 3 个功能之一。

我看了Break a previous commit into multiple commits and Git Cherry-pick vs Merge Workflow,他们很接近,但不要直接回答我的问题。

首先 git cherry-pick -n 您的原始提交使用 -n 不提交。这将使您获得工作目录中的所有更改,但没有添加到索引也没有提交。

然后 git add 您打算提交的每个文件,可选择 git add -igit add -p 到 select files/patches 添加。

在一次提交中提交您选择提交的任何内容,然后重复直到所有更改都在所需的提交中。