* Only allow to start interactive rebase from merged commit in current branch
* The order of commits in the interactive rebase window is as same as it's in histories page.
* Unlike anthor git frontend app `Fork`, you should edit the final message on the last commit rather than the previous commit that will be meld into while squashing commits
* remove the `Leave` option (it may lead to an undefined behaviour), so user can only choose `Stash & reapply` or `Discard`.
* re-design the UI
* remove unused resources
This commit adds the local changes handling behavior for branch checkout.
One of three can be selected: stash and reapply after checkout, discard changes or leave them as is (previous behaviour)
* remove dotnet-tool.json because the project does not rely on any dotnet tools.
* remove Directory.Build.props because the solution has only one project.
* move src/SourceGit to src. It's not needed to put all sources into a subfolder of src since there's only one project.
* 'Pull' should always enabled for local branch with remote upstream
* 'Discard All Changes' for current branch should only be enabled when there's at least one changes
* 'Fast Forward' should check if target local branch has any commit ahead of it's upstream