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, Dropbox and Rstudio
  • How can I put my git working directory inside dropbox so I can seemlessly work from any dropbox-enabled computer without committing?
  • dropbox-style svn/git/mercurial?: auto-commit upon change and auto-checkout
  • What does Git think a file's executable bit's value is?
  • Pushed to git bare repo and I can't pull changes from other machines
  • How do I keep GIT repositories inside Dropbox?
  •     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?

  • How do you rename a Git tag?
  • How to delete a commit on a git remote?
  • What are the advantages of using git-svn over the normal svn client?
  • How to remove all occurences of a file in index, from all git commits
  • How to reorder last two commits in git?
  • Resolving Git Svn Conflicts
  • 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.