User:Novem Linguae/Essays/Rebasing and merge conflicts
Appearance
The dreaded merge conflict. Here's how to solve them. Written from a Windows and VS Code perspective.
Rebasing a GitHub pull request
[edit]Ugh. What a nightmare.
Update with merge commit
[edit]This is probably the way to go. Force pushing makes it so that I can't check out the PR with VS Code's GitHub extension.
Option 1 - the "Update branch" button
[edit]- repo -> ... -> Settings -> General -> tick "Always suggest updating pull request branches"
- Go back to the PR.
- At the bottom, next to the button that says "Update branch", click the down arrow
- Select "Update with merge commit"
- Click "Update branch"
Option 2 - remake the PR
[edit]- good for when there are complex merge conflicts, such as those involving file renames
Obsolete and buggy. Suggest using "update with merge commit", option 1 |
---|
The following discussion has been closed. Please do not modify it. |
Option 3 - command line[edit]I did a lot of Googling and trying things, none of it worked. Finally, Taavi gave me a workflow to use in the command line that works.
|
Rebasing a Gerrit patch
[edit]Much easier.
- Simple rebases can be handled by navigating to the webpage of the patch, then clicking the "Rebase" button in the top right.
- Merge conflicts can be solved using the procedure at mw:Technical contributor onboarding/Resolve merge conflict. Basically...
git rebase master
- In VS Code's source control panel, the files that are fine will be in the "Staged Changes" section, and the files that have merge conflicts will be in the "Merge Changes" section.
git stage
the files when you're done manually resolving the merge conflicts.- When all done, in VS Code, click the blue "Continue" button (or
git rebase --continue
) git review
(no need togit commit
orgit commit --amend
)