gpt4 book ai didi

git - 将多个不相关的提交推送到远程 git repo

转载 作者:行者123 更新时间:2023-12-04 06:20:42 25 4
gpt4 key购买 nike

我有一种情况,我在一个特定的分支上从事两个不同的项目。我已经完成了项目“A”,提交了更改,并将更改推送到远程。此更改“A”目前正在审核中,因此尚未 merge 到分支。同时,我已经开始为同一分支中的另一个项目进行不相关的更改,将此更改称为“B”。我也完成了这个更改的编码,我准备提交并推送它。但我不确定这应该如何完成,因为更改“A”尚未 merge 。如何将这两个更改“A”和“B”作为不依赖于彼此的单独更改推送?

最佳答案

首先,您需要确定将成为更改 A 和 B 的共同父级的提交。正如您所描述的,这是提交 A 的父级。使用 git log在 A 之前找到提交的哈希。请注意,您可以只输入提交哈希的前几个字母/数字。让我们假设它是“parent_commit”

现在 checkout 这个提交,我们将把它用作变更 B 的新分支的负责人。

git checkout parent_commit

接下来从它创建一个新分支,我们将在其中提交 B 更改。
git checkout -b changeB

最后,使用 git addgit commit在这个新分支上提交您的更改 B。完成后,执行 git push从独立于变更 A 的新分支推送您的提交 B。或者,如果您已经提交了变更 B,则使用 git cherry-pick commitB然后 git pull .

现在,您将拥有 A 的原始分支和 B 的新分支,将历史共享到 A 的父级。

结束语:如果您已经提交了 B 并为它创建了一个分支(并已将其 checkout ),那么您可以完成另一个答案中提到的 rebase one-liner:
git rebase --onto master commit_A_sha

关于git - 将多个不相关的提交推送到远程 git repo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6617411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com