Add GitHub for Mac's sync button
I like the sync button GitHub for Mac (and Windows) that simplifies fetching/pushing/pulling and I would like to see it in Github for Atom.
Aye
@stevemoser any thoughts on preferred location?
I feel like it would be best place within the existing remote actions status bar popout and exposed via a github:sync command.

Agreed.
On Fri, May 19, 2017 at 7:33 PM Craig Bovis notifications@github.com
wrote:
@stevemoser https://github.com/stevemoser any thoughts on preferred
location?I feel like it would be best place within the existing remote actions
status bar popout and exposed via a github:sync command.[image: sync]
https://cloud.githubusercontent.com/assets/34132/26270596/6ccdffb0-3d3f-11e7-8d80-ab47b68e474c.png—
You are receiving this because you were mentioned.Reply to this email directly, view it on GitHub
https://github.com/atom/github/issues/808#issuecomment-302833253, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAFffUpHTP-WbBjBVFKrC09m-t3hamQIks5r7ibkgaJpZM4Nc1iW
.>
Steve Moser || [email protected]
For this package I personally prefer to keep our vocabulary as close to git's as possible, partially because one of my goals for it is for it to act as a tool for gently teaching git novices git concepts. The sync button is super handy, but it also conceals the operations it performs behind an abstraction that doesn't exist in other clients or on the command-line. If a developer first encounters git with this package, but is able to follow instructions written for general git users in an open-source project's contributing guide, I'll be very happy.
Part of my Evil Plan :tm: for this package is to expose a variety of services that other packages can consume to overlay higher-level workflows on top of the basic operations provided directly. For example, you could install a package that adds useful commands and controls for GitHub flow, a different one for git flow, or even something homegrown for whatever bespoke git branching models are used in some internal project. To me, that's where compound actions like "sync" would live.
_Caveat: evil plan is as of yet somewhat vague, largely unprioritized, and exists mostly within @smashwilson's head._
That makes a lot of sense @smashwilson. I do remember starting out with git years ago via the Github desktop app and finding it a little confusing that the sync terminology didn't extend to the rest of the git ecosystem.
Interestingly, the new GitHub Desktop moved away from the "Sync" button and now has a single button with a label that adapts to different situations: https://github.com/desktop/desktop/issues/598.
The sync button is super handy, but it also conceals the operations it performs behind an abstraction that doesn't exist in other clients
Tower has something similar, and both Tower and GitKraken have an 'auto-fetch' feature (and actually, I recently implemented this in the _git-plus_ package also)
Part of my Evil Plan ™️ for this package is to expose a variety of services that other packages can consume to overlay higher-level workflows on top of the basic operations provided directly.
Solid plan!
For now, this isn't something I want to add to the package. I agree with @smashwilson that a good service API (see https://github.com/atom/github/issues/1089) would be perfect for supporting community packages that would want to implement this.
@Superpencil buttons like push/pull and switching branches would make much more sense inside the git sidebar
It used to be like that https://github.com/atom/github/pull/276, but when switching to a staged and unstaged list, these actions got moved into tooltips to save space.
I also like the idea of a package specially made for people new to Git. Maybe more like a "step by step" tutorial: Fetch/Pull -> create branch -> make changes -> commit -> push -> create PR
For a purely UI user:
To conclude:
@simurai A little wizard would be nice, perhaps start with a copy of Github Flow?
Most helpful comment
For this package I personally prefer to keep our vocabulary as close to git's as possible, partially because one of my goals for it is for it to act as a tool for gently teaching git novices git concepts. The sync button is super handy, but it also conceals the operations it performs behind an abstraction that doesn't exist in other clients or on the command-line. If a developer first encounters git with this package, but is able to follow instructions written for general git users in an open-source project's contributing guide, I'll be very happy.
Part of my Evil Plan :tm: for this package is to expose a variety of services that other packages can consume to overlay higher-level workflows on top of the basic operations provided directly. For example, you could install a package that adds useful commands and controls for GitHub flow, a different one for git flow, or even something homegrown for whatever bespoke git branching models are used in some internal project. To me, that's where compound actions like "sync" would live.
_Caveat: evil plan is as of yet somewhat vague, largely unprioritized, and exists mostly within @smashwilson's head._