Gau*_*ang 3 git github pull-request
我知道这不是一个新问题,但是我尝试了这里提供的许多解决方案,但似乎没有什么对我有用。
我已经分叉了一个项目来为其做出贡献。我进行了多次提交,它们都只包含在一个拉取请求中。
我想为每个提交创建新的拉取请求,我尝试创建一个新分支并愉快地选择特定提交,但它似乎不起作用。
这是一些输出git log --all --oneline --graph --decorate
:
* 340fb9e (origin/click_elements) Feature Request - Click Elements #585
* 8a8f485 (HEAD -> master, origin/new_locator, origin/master, origin/HEAD) Merge remote-tracking branch 'upstream/master'
|\
| * 2466942 (upstream/master) Libdoc updates - link to project and fix 404 (#668)
* | e66862f Added method to find element by class name #673
* | f8ec2ed Feature Request - Click Elements #585
* | 264e38c Added following keywords and their acceptance test cases to fix the issue #463 table_cell_should_not_contain table_column_should_not_contain table_footer_should_not_contain table_header_should_not_contain table_row_should_not_contain table_should_not_contain
| * [truncated: more commits on master in original repo...]
|/
* ef5d24d Merge pull request #539 from ReadmeCritic/master
Run Code Online (Sandbox Code Playgroud)
有人请告诉我如何解决这个问题?
在 GitHub 上提交 PR 时,通常最好保持 PR 原子性,并使其与官方master
. 也就是说,您用于 PR 的任何分支都应该直接来自upstream/master
,并且应该只包含该 PR 所需的提交。
要解决您的问题,首先,重置master
为与同步upstream
:
git checkout master
git reset --hard upstream/master
Run Code Online (Sandbox Code Playgroud)
现在,对于您要提交的每个 PR,创建一个新分支并挑选适当的提交。例如:
git checkout -b branch1
git cherry-pick f8ec2ed
git push --set-upstream origin branch1
Run Code Online (Sandbox Code Playgroud)
完成后,您可以删除原来的click_elements
分支:
git branch -D click_elements
git push :click_elements
Run Code Online (Sandbox Code Playgroud)
或者,如果您希望该分支仅包含第一个提交(从而允许您重用现有的 PR),请执行以下操作:
git checkout click_elements
git reset --hard 264e38c
git push --force-with-lease
Run Code Online (Sandbox Code Playgroud)
为了避免将来出现此问题,切勿直接提交到master
. 相反,请执行以下操作:
如有必要,更新您的存储库:
git checkout master
git pull upstream master
Run Code Online (Sandbox Code Playgroud)创建一个新分支 ( git checkout -b mybranch
)。
在提交 PR 之前,重新调整您的功能分支:
git checkout master
git pull upstream master
git checkout mybranch
git rebase master
Run Code Online (Sandbox Code Playgroud)
(根据项目的不同,即使在 PR 已打开之后,您也可以重新设置基准。但是,通常您不需要这样做,特别是如果您在打开 PR 之前这样做的话。)
打开公关。
强制性警告:由于变基(以及reset --hard
)重写历史,这对于在该分支上工作的其他人来说可能是危险/破坏性的。确保与您合作的任何人清楚地传达您所做的事情。
归档时间: |
|
查看次数: |
3685 次 |
最近记录: |