Change:
From a branch is checked out, I do a from command line (bash on ubuntu), and git hits a conflict. then go to the vs code window where the folder is open. In the Git panel on the left, I can see the file listed under Merge with a C as status, and I can see there are conflict markers in the file. resolve each conflict and save. file status changes to M once all conflicts resolved. I can click the plus sign on the file, and the file disappears from the Merge (perhaps a commit occurs then?). But a rebase continuation does not happen, there is nothing under Commit, and there is no option to do rebase continue.
, can i work on this? :)
thank you for referencing my issue, I'm going to subscribe to this thread :)
, few points to just clear things I tried reproducing this taking the comments into consideration.( referring to all 3 issues that were opened before) 1) did throw an error in the bash saying merge conflict 2) Went to the file and resolved the conflicts 3) Clicked on the "+" sign to stage the changes and it did disappear from the "Merge Changes" and came under "Staged Changes" (This did not run the commit ) 4) Entered the commit message and committed the changes. Until this point was not run even though the rebase was in progress (Referring to ). Attaching the git log file for these operations. So after the 4th point is when the command should run? Please clarify if I am in the correct path :) Thanks!
referring to the issue I've opened yesterday ( ), the steps are a bit different. When I accept the current changes (so the file is identical to the version of the last commit) and I click on "+" sign the file disappears from "Merge Changes" but doesn't appear under "Staged Changes". Hope you find this useful, thanks in advance
, I understand your point that the steps are different but I guess all these will be fixed under the same issue should confirm upon this :)
You gotta resolve the changes by taking all changes from one side, in order for the file not to end up in the Staged Changes at all.
, I will try understanding this more deeply. Will get back to you in case on any doubts :) Thanks!
, is this approach good ? Should we include something similar to in this function () ? Thanks !
Well, no... the staging it correct. Staging those files will end up in a no-op. The problem is that you can't commit in VS Code without changes, although you'd want to continue the rebase/merge in this case. I will remove the label as this seems to be an advanced issue.
I run into this issue several times. If I try to the rebase via terminal, it tells the following: If there are other changes than the conflicted files, VSCode can continue the rebase by just clicking . Here that doesn't work. The line that helped me was the following from the error log above: My workaround: add the resolved conflicting files by clicking the run in the terminal Suggestion: So maybe a solution could be (analog to the ) to tell VSCode to run if there are no staged files in state when the user clicks .
I run into this from time to time as well. Just this last time, I had to all the commits locally. Then I click the button to pull/push to my remote which then introduced the same merge conflicts that I had during my first --skip locally. Resolved those and committed. Then my pull/push commit counts changed from 3/22 to 0/23. Clicked the button again to push all 23 back up to my remote. Very confusing process though.
I know this is quite old, but currently when I hit this scenario and click the icon vscode asks me if I want to do an empty commit and if I confirm the rebase process continues.
This only works if you have configured VS Code to allow empty commits
i still cannot continue the rebase wiht ui cause of empty commit. the old FR took 2 years, how long will it be this time
I encountered the same issue yesterday. This issue occurs primarily because vs code ui does not have an option that triggers during rebase. When the user applies the current changes and saves during a rebase conflict, the file disappears from the staged area because there's no changes to commit. When the user then clicks the commit button, the app runs in the background. If empty commits are not enabled, this triggers the error described by Running as pointed out works. To solve this, a skip button can be displayed next to the commit button during rebase. The skip button can also be used to trigger a skip when the user thinks the commit is no longer necessary. An abort button might also be helpful for those who are not familiar with cli so they can abort the rebase
I encountered this issue while pulling the changes from the upstream. Explanation Did a git pull of upstream to master. Encounter a conflict Accepted all the current changes Clicked on sign for staging changes File disappears
Steps to verify: Launch VS Code Insiders (2022-07-28 or later) Open a folder/workspace that contains a git repository Create a topic branch (ex: ) Switch back to the branch, make a change in a file, and commit Switch to the topic branch, modify the same line in the same file, and commit From the command palette execute the command and choose the branch Confirm that you get a notification that there is a conflict that you have to resolve Resolve the conflict by accepting all changes from the branch After resolving the conflict, save the file, and click on the action to stage the change Confirm that the file does not appear any more in the "Source Control" view Click on the "Continue" action button Confirm that the rebase operation completes
4 years later

Discussion:
return { command: this.getCommitActionButtonPrimaryCommand(), secondaryCommands: this.getCommitActionButtonSecondaryCommands(), <del> enabled: this.state.repositoryHasChangesToCommit && !this.state.isCommitInProgress && !this.state.isMergeInProgress </del> <ins> enabled: (this.state.repositoryHasChangesToCommit || this.state.isRebaseInProgress) && !this.state.isCommitInProgress && !this.state.isMergeInProgress </ins> }; } private getCommitActionButtonPrimaryCommand(): Command { <del> let commandArg = ''; let title = localize('scm button commit title', "{0} Commit", '$(check)'); let tooltip = this.state.isCommitInProgress ? localize('scm button committing tooltip', "Committing Changes...") : localize('scm button commit tooltip', "Commit Changes"); </del> // Rebase Continue if (this.state.isRebaseInProgress) { <del> return { command: 'git.commit', title, tooltip, arguments: [this.repository.sourceControl, commandArg] }; </del> <ins> return { command: 'git.commit', title: localize('scm button continue title', "{0} Continue", '$(check)'), tooltip: this.state.isCommitInProgress ? localize('scm button continuing tooltip', "Continuing Rebase...") : localize('scm button continue tooltip', "Continue Rebase"), arguments: [this.repository.sourceControl, ''] }; </ins> } // Commit <ins> let commandArg = ''; let title = localize('scm button commit title', "{0} Commit", '$(check)'); let tooltip = this.state.isCommitInProgress ? localize('scm button committing tooltip', "Committing Changes...") : localize('scm button commit tooltip', "Commit Changes"); </ins> const config = workspace.getConfiguration('git', Uri.file(this.repository.root)); const postCommitCommand = config.get<string>('postCommitCommand');

// amend allows changing only the commit message && !opts.amend && !opts.empty <ins> // rebase not in progress && repository.rebaseCommit === undefined </ins> ) { const commitAnyway = localize('commit anyway', "Create Empty Commit"); const answer = await window.showInformationMessage(localize('no changes', "There are no changes to commit."), commitAnyway);