首页 > 解决方案 > 单独的 git 提交/拉取请求

问题描述

我最初从 master 克隆了一个存储库并进行了更改。我被告知要创建三个独立的分支,每个分支都有自己的相关提交和拉取请求。完成所做的更改后,我对 3 个分支执行了 3 次以下步骤:

//For branch one
1) git checkout -b branchOne
2) git add file1 file2 file3
3) git commit -m "commit msg"
4) git push --set-upstream origin [branch_name]

//For branch two
1) git checkout -b branchOne
2) git add file4 file5 file6
3) git commit -m "commit msg"
4) git push --set-upstream origin [branch_name]

这样做 3 次后,它创建了 3 个分支,但它们都共享相同的提交历史。提交历史基本上被更新/附加到下一个分支。

我现在需要做什么:

现在我需要分离这些提交,以便已经创建的每个分支都有自己的拉取请求和相关提交。我怎样才能做到这一点?

更新:除此之外,我还需要向一些分支添加新的提交。所以总而言之,我需要将提交分离到它们自己的分支(已经存在的分支)以及向分支添加额外的新提交。

我怎样才能恢复我已经做出的提交,然后只将它们提交到相关分支。

标签: git

解决方案


  1. 用于git log查看您的提交历史记录并在更改之前查找提交。记住哈希的前 4-6 位数字。当你在做的时候,还要写下你的 3 个提交哈希的第一个字母。

  2. git checkout <hash prior to your changes>- 您的存储库现在处于最后一次干净的提交,没有您的更改。

  3. 从这里创建并签出您的功能分支:git checkout -b feature/feature01.

  4. git cherry-pick <hash of first feature commit>- 这会在您当前的分支中移动此提交的更改。

您现在在新分支上拥有这些更改,完全是。对每个特征从第 2 步开始重复。


推荐阅读