How to work on same github repo from two systems?

I work on multiple systems throughout the day. I’ve been trying to figure out a strategy to sharing my current working directory between the two systems.

The code is hosted on Github as a private repo. I was thinking of using a bare repo in dropbox like this:

  • Git barebones repo
  • git repo in Dropbox, syncing on Linux and Windows, Whitespace issues
  • Using git without (or with limited) revision history?
  • Why would you use Dropbox but also Git for your Emacs initialization file?
  • dropbox-style svn/git/mercurial?: auto-commit upon change and auto-checkout
  • How can I put my git working directory inside dropbox so I can seemlessly work from any dropbox-enabled computer without committing?
  •     Github
       Dropbox(bare repo)
         /      \
      Desktop   Laptop

    I’m trying to avoid having tons of bogus checkins in my repo just so that the code is shared between the two systems. I tested this out, and it seemed to work to share code, but I’m thinking all the checkins will still pile up in the git log when i have to inevitably push from dropbox to github.

    So my questions:

    1. Would there be a way to edit the commits (im thinking something like squashing a bunch of commits into one) before pushing from the dropbox bare repo to github?
    2. Should I be just putting the working directory into Dropbox (clone from github) and then using the code from there?

  • Best way to avoid merging a branch into another one
  • How to commit only modified (and not new or deleted) files?
  • On Gitbash - Bower : ENOGIT git is not installed or not in the PATH
  • Recreate git repository from .git folder from stash
  • Git's performance with Big Commits vs. tiny commits
  • Undoing Git Clean
  • One Solution collect form web for “How to work on same github repo from two systems?”

    Skip Dropbox entirely. Instead, use topic branches for work in progress, then rebase or otherwise improve your history when you’re ready to merge to master.

    The workflow would look something like this:

    1. Get the urge to code a feature. Make it a topic branch: git checkout -B <topic> master
    2. Code away on <topic>. Commit as often as you’d like, in whatever state you’d like.
    3. At the end of the day / session, push to github: git push origin <topic>
    4. When hopping to the other machine, checkout <topic> and track it: git checkout --track origin/<topic> or git pull origin <topic> if you already have it checked out.
    5. Repeat steps 2-3 until that topic is done.

    When you’re ready to merge with master or production, use git rebase -i to give <topic> a logical, debuggable, maintainable history.

    Git Baby is a git and github fan, let's start git clone.