Versions Compared


  • This line was added.
  • This line was removed.
  • Formatting was changed.


Incoming pull requests, in first place, are just known on the server. To get the commits, which such a pull request includes, locally, use invoke Fetch Pull Request from the context menu of the pull request. This will fetch all commits from the foreign repository to a special branch in your local repository and will create an additional merge node between the base commit from which the pull request has been forked and the latest (foreign) pull request commit. When selecting this merge node in the Graph Commits view, you can see the entire changes which a multi-commit pull request includes and you can comment on these changes, if necessary. After commenting changes, it's probably a good idea to Reject the pull request to signal the initiator of the pull request, that modifications are required before you are willing to pull his changes. If you are fine with a pull request, you may Merge it. This will request the GitHub server to merge the pull request and then SmartGit will pull the corresponding branch, so you will have the merged changes locally available.


Commit comments will show up in the Graph the Commits view. Comments on individual lines will show up in the Changes view and the affected files will be highlighted in the Files and Graph and Commits view, too. This works the same way for line-comments of Pull Requests, provided that the pull request has been Fetched and the local pull request merge commit has been selected.

Comments can be created, modified and removed using the corresponding actions from the Comments menu or context menu actions in the Graph the Commits and Changes view. If a pull request merge commit is selected, only line-comments of the pull request can be manipulated.


Possible Problems & Solutions

Authenticating with two or more accounts

If you want to authenticate to your GitHub repositories, using two or more accounts, open Preferences, section Hosting Providers, open the GitHub hosting provider there and deselect Use OAuth token for repository authentication. When pulling/pushing a GitHub repository for the next time, SmartGit will ask you for Username and Password. For the Username, just enter the appropriate GitHub account name, for the Password it's recommended to generate a new Personal Access Token in your GitHub account settings.


Code Block
git config --global true

Private repositories do not show up

If you are authenticating using OAuth and you can't see private repositories of your GitHub organization or pushing to your organization's repositories fails with HTTP error code 403, make sure that your organization allows Third-party access and SmartGit is Approved. Your organization settings might look like this:

Note that the screenshot above shows the interface of the organization's manager. If you are not the manager, but just a member of the organization, you can request access for SmartGit to this organization from your Settings - Applications, tab Authorized OAuth Apps: select SmartGit here and check for which organizations you may request access. The screenshot below shows syntdev2 for which access can be requested. Once done so, the organization manager will receive a notification and may confirm.

Image Added


If your GitHub hosting provider is already set up in the Preferences and you need to rerun through the OAuth setup, then:

  1. Get rid of all GitHub-related credentials from Preferences, section Authentication
  2. Get rid of the GitHub hosting provider from Preferences, section Hosting Providers
  3. Rerun through the OAuth setup





Git-Flow Pull Requests will be closed on Finish Feature

When using Git-Flow or Git-Flow Light in combination with pull requests, pull requests may be marked as Closed instead of Merged after invoking Finish Feature. This happens when you have Delete Feature Branch selected for the Finish Feature dialog: with this option selected, the local and remote feature branch will be deleted immediately, however the resulting merge/rebase has not yet been pushed. If a branch will be deleted before it has been merged, GitHub will mark the pull request as Closed. If it's only deleted after the branch has been merged, it will be marked as Merged. If you don't want your pull requests to become Closed, unselect Delete Feature Branch, push the resulting merge/rebase first and only then Delete the feature branch from GitHub (e.g. from the Branches view).