Git 将旧的提交移至新分支,以便我稍后可以将它们合并回来
Git Move older commit(s) to new branch so I can merge them back later
还有一个 Git 移动提交问题。
我有一个主分支,所有工作都致力于此。客户决定的功能 123 不再需要发布(稍后发布)。我需要将提交 B(由于我对 Git 工作流程缺乏完整的理解,因此出现了这个问题)到另一个批次中,以便稍后将其合并。
很像如果我能及时回到过去,知道那些提交需要在它们自己的分支上然后执行,这样我就可以在需要该功能时轻松地进行合并。
A --> B --> C --> D (master)
想做:
A --> __ --> C --> D (master)
\
B (Feature 123)
所以我可以稍后再做:
A --> __ --> C --> D --> FUTURE COMMITS --> Z (master)
\ /
B -----------------------[Merge] (Feature 123)
我想接受 Commit B 并将其移动到 Master 这样我可以稍后将它合并到 master 中。
我知道我需要在该提交处进行分支,但如果 master 仍然知道这些更改,我对我没有任何好处。我知道我在考虑这个错误,所以任何煽动都会受到赞赏。
此外,这些提交已被推送到源并已被其他开发人员拉下。
您可以在 B
创建一个新的功能分支,然后在 A
上重新设置主分支:
git branch feature123 B
git rebase --onto feature123^ feature123 master
这将改写主分支的历史。它将在 A
之上重播 C
和 D
,这可能会导致已经拉取这些提交的人感到困惑。
与您在图表中说明的内容不完全匹配但避免重新编写 master
分支历史记录的替代方法是还原提交 B
:
git revert B
这将在 master 分支上记录一个新的提交,恢复在 B
中引入的更改。您稍后可以使用 git cherry-pick B
.
重新应用该提交
还有一个 Git 移动提交问题。
我有一个主分支,所有工作都致力于此。客户决定的功能 123 不再需要发布(稍后发布)。我需要将提交 B(由于我对 Git 工作流程缺乏完整的理解,因此出现了这个问题)到另一个批次中,以便稍后将其合并。
很像如果我能及时回到过去,知道那些提交需要在它们自己的分支上然后执行,这样我就可以在需要该功能时轻松地进行合并。
A --> B --> C --> D (master)
想做:
A --> __ --> C --> D (master)
\
B (Feature 123)
所以我可以稍后再做:
A --> __ --> C --> D --> FUTURE COMMITS --> Z (master)
\ /
B -----------------------[Merge] (Feature 123)
我想接受 Commit B 并将其移动到 Master 这样我可以稍后将它合并到 master 中。
我知道我需要在该提交处进行分支,但如果 master 仍然知道这些更改,我对我没有任何好处。我知道我在考虑这个错误,所以任何煽动都会受到赞赏。
此外,这些提交已被推送到源并已被其他开发人员拉下。
您可以在 B
创建一个新的功能分支,然后在 A
上重新设置主分支:
git branch feature123 B
git rebase --onto feature123^ feature123 master
这将改写主分支的历史。它将在 A
之上重播 C
和 D
,这可能会导致已经拉取这些提交的人感到困惑。
与您在图表中说明的内容不完全匹配但避免重新编写 master
分支历史记录的替代方法是还原提交 B
:
git revert B
这将在 master 分支上记录一个新的提交,恢复在 B
中引入的更改。您稍后可以使用 git cherry-pick B
.