The lastest version of the GitHub official client app for macOS and Windows, GitHub Desktop 1.5, makes it easier to resolve merge conflicts and to create, add, or clone a repository.
Merging two branches has always been one of the most delicate tasks in a GitHub workflow due to the possibility of conflicts arising between different revisions of some files.
Merge conflicts can be intimidating for new developers, especially those working in teams. In our usability tests, the audible "NOOOOO" when encountering a conflict became predictable.
GitHub has been working to make merging less intimidating when using GitHub Desktop, first by introducing a warning about the existence of conflicts before actually attempting to merge. This still left developers on their own to resolve the conflicts in case they arose. GitHub Desktop 1.5 not only warns about conflicts, it also guides developers through the process of resolving the conflicts by taking them to their preferred editor and helping them keeping track of conflicts still needing attention.
(Image from GitHub blog)
For example, if you try to merge a conflicting branch, you will see a list of files containing conflicts along with a button that will open them in a text editor. Once you are done amending the source code, GitHub Desktop will automatically update the list of files containing conflicts and will show a "No conflicts remaining" label along each file you fixed. You iterate this process until there are no more files left with conflicts, at which point GitHub Desktop will enable the commit button.
Another improvement in version 1.5 provides a simple way to create, add, or clone a repository, which was previously not easily done.
InfoQ has spoken with Neha Batra, GitHub Desktop engineering manager to learn more about GitHub plans for GitHub Desktop.
InfoQ: GitHub Desktop 1.5 shows GitHub commitment to making GitHub as accessible a platform as conceivable. Are there any plans or efforts to bring it to iOS, Android, or Linux in the near future?
Neha Batra: Much of the work around the code is shifting slowly to mobile, but code collaboration still primarily happens on desktop machines. Before expanding to another operating system or medium, we're first improving GitHub Desktop's accessibility to its existing users by including other git workflows, use cases, and making each next step a little easier. We'll continue to evaluate the tradeoff between support for new operating systems and improving the existing product based on community and user feedback and the needs of developers.
InfoQ: The work done on GitHub Desktop during the last year focused mostly on simplifying the pull/merge cycle. What lies on GitHub Desktop roadmap for the next year?
Batra: For 2018, the GitHub Desktop team provided a foundation for our users to collaborate more effectively and for us to build more complex features, which resulted in releasing functionality for pull requests, easily merging branches, and guiding users through resolving merge conflicts.
For next year, the Desktop team plans to build on this foundation. As a result of community feedback, we're prioritizing the two most requested features - support for rebasing and stashing in GitHub Desktop. We're also aiming to make GitHub Desktop effortless for newer developers by improving new user onboarding and accessibility. Finally, we're excited to explore how we may integrate more holistically between GitHub Desktop and GitHub.com, and will continually look to the community on what features may be the most beneficial.
Ultimately, GitHub Desktop aims to be the top-of-mind application where new developers feel comfortable in code and experienced users feel productive. Every feature is an opportunity to provide a sense of simplicity, comfort, and dependability for our users.
You can get GitHub Desktop 1.5 from GitHub Desktop download page.