问题
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:
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:
- 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?
- Should I be just putting the working directory into Dropbox (clone from github) and then using the code from there?
回答1:
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:
- Get the urge to code a feature. Make it a topic branch:
git checkout -B <topic> master
- Code away on
<topic>
. Commit as often as you'd like, in whatever state you'd like. - At the end of the day / session, push to github:
git push origin <topic>
- When hopping to the other machine, checkout
<topic>
and track it:git checkout --track origin/<topic>
orgit pull origin <topic>
if you already have it checked out. - 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.
来源:https://stackoverflow.com/questions/11424647/how-to-work-on-same-github-repo-from-two-systems