Git 场景不同步,我的提交介于两者之间?
Git out of sync scenario, with my commit left in between?
所以这是一个特殊的场景,我遇到过很多次,但一直无法从中找出可行的工作流程。
场景
我有一个远程 git 分支,回购有一些维护者。我有 repo 的本地克隆,我和维护者一次在同一个分支上工作。远程和本地都同步。现在维护者要我添加一个特性。我进行了某些更改并分支到另一个分支提交,推送并创建一个 pr 到主分支。但与此同时,维护者已经对主分支做出了某些承诺。
所以我从功能分支制作的 pr 在提交历史方面是不同步的,因为在主分支后面有一些提交。
为了让它们同步并且在 pr 中只有一个提交,我做了一个手动过程,从原点移回主分支,创建一个名为 feature2 的新分支,并进行相同的更改,我之前做过在我的功能分支到 feature2 并再次从 feature2 到主分支创建一个新的 pr 并删除初始功能分支及其 pr.
这似乎是一种错误的方式,它也耗费了大量时间。解决此类情况的正确方法和流程是什么?
您必须将主(主要)分支合并到您的功能分支中才能同步。
- 拉主分支
- 检查你的功能分支
- 将 master 分支合并到你的功能分支中
这是一个很好的要点,其中包含必需的 git 命令。 https://gist.github.com/santisbon/a1a60db1fb8eecd1beeacd986ae5d3ca
这样,它会将您的分支与最新更改同步。
您可以使用
git fetch <remote_repo>
git rebase <remote_repo>/master topic
在发出第二个拉取请求之前。
因此,您手动进行的操作已经在 git 中通过 rebase 操作自动执行。
来自 git manual
A---B---C topic
/
D---E---F---G master
From this point, the result of either of the following commands:
git rebase master
git rebase master topic
would be:
A'--B'--C' topic
/
D---E---F---G master
所以这是一个特殊的场景,我遇到过很多次,但一直无法从中找出可行的工作流程。
场景 我有一个远程 git 分支,回购有一些维护者。我有 repo 的本地克隆,我和维护者一次在同一个分支上工作。远程和本地都同步。现在维护者要我添加一个特性。我进行了某些更改并分支到另一个分支提交,推送并创建一个 pr 到主分支。但与此同时,维护者已经对主分支做出了某些承诺。
所以我从功能分支制作的 pr 在提交历史方面是不同步的,因为在主分支后面有一些提交。
为了让它们同步并且在 pr 中只有一个提交,我做了一个手动过程,从原点移回主分支,创建一个名为 feature2 的新分支,并进行相同的更改,我之前做过在我的功能分支到 feature2 并再次从 feature2 到主分支创建一个新的 pr 并删除初始功能分支及其 pr.
这似乎是一种错误的方式,它也耗费了大量时间。解决此类情况的正确方法和流程是什么?
您必须将主(主要)分支合并到您的功能分支中才能同步。
- 拉主分支
- 检查你的功能分支
- 将 master 分支合并到你的功能分支中
这是一个很好的要点,其中包含必需的 git 命令。 https://gist.github.com/santisbon/a1a60db1fb8eecd1beeacd986ae5d3ca
这样,它会将您的分支与最新更改同步。
您可以使用
git fetch <remote_repo>
git rebase <remote_repo>/master topic
在发出第二个拉取请求之前。
因此,您手动进行的操作已经在 git 中通过 rebase 操作自动执行。
来自 git manual
A---B---C topic / D---E---F---G master
From this point, the result of either of the following commands:
git rebase master
git rebase master topic
would be:
A'--B'--C' topic / D---E---F---G master