Ram*_*ams 5 git github git-pull git-rebase pull-request
我有一个功能分支test.我做了我的更改并将更改提交到该分支.与此同时,我的master提示已被更改(假设它有更多来自其他开发人员的提交).
在将我的更改推送到我的远程分支之前,我做了一个git rebase然后推送我的更改并创建了一个Pull Request.
对于我的拉取请求,我需要修改一些注释.
修复后,我看到我的master分支已更新.(假设其他开发人员提交了更多提交).
在任何时候,合并master到test分支的原因是:可能存在需要集成master中的更改并使用此功能分支测试应用程序的情况
在这种情况下,我有两个问题.
如何master在我的test分支中没有合并提交的情况下将新的更改合并/重新绑定到我的test分支上?这样我将同时拥有我之前的提交,这些提交是Pull Request的一部分,而新提交是Pull Request注释修复.
我该如何合并/变基master上test,并添加新的承诺,我现有的一次提交,这样我会永远在我的PR一个承诺?
Sco*_*don 10
首先,确定您是否真的需要将新更改master集成到您的功能分支中。您可能可以忽略来自master. 如果它们与您在 中的更改不冲突test,那么这是最容易做的事情,并且维护者无论如何都可以合并您的 PR。
您可以通过查看 GitHub PR 页面轻松查看是否是这种情况。如果您收到“无法自动合并”消息,则必须使用以下解决方案之一。
在不合并的情况下包含上游更改的标准方法是再次变基:
git checkout test
git rebase master
Run Code Online (Sandbox Code Playgroud)
由于这会重写历史记录,因此您需要强制推送:
git push --force-with-lease
Run Code Online (Sandbox Code Playgroud)
您的 PR 将使用您的所有提交进行更新,并且现在将master在其历史记录中包含新的提交。
强制性警告:由于 rebase 会重写历史记录,因此对于在此分支上工作的任何其他人来说,这可能是危险的/具有破坏性的。确保您与正在合作的任何人清楚地传达您所做的事情。
如果你不想变基,你的其他选择是:
master到test,但您已声明不想这样做。git cherry-pick上的任何新提交master。这具有在您的分支上复制这些提交的缺点。master到test: git merge --squash master。这在效果上类似于cherry-pick,但只创建一个提交。| 归档时间: |
|
| 查看次数: |
1718 次 |
| 最近记录: |