I have a local branch for day-to-day dev work in git. My workflow is:
It all works fine, however most of the recommendations I encountered say that one should not "push" private branches, on which rebase is regularly performed.
The problem here is that in this case local branch is not backed up to a server and the only way to save the work is to merge it back to "pushable" branch (i.e. origin/master)
What would be your recommendations on the workflow in this case?
Thanks!
UPDATE: I realised that one of the original requirements I had (avoiding usage of external utilities) is unnecessary limiting.
My current solution is to store all my repositories in a cloud-synchronised folder - this way I get backup for free.
I use the --mirror option and push to a personal backup repository:
Add it as a remote:
git remote add bak server:/path/to/backup/repo
Do the backup:
git push --mirror bak
This will automatically make your backup repository look like your active one -- branches will be created, deleted, updated (even forced/non-fastforwards) as needed. You can make an alias for this too:
git config alias.bak "push --mirror bak"
Then, it's just a matter of running "git bak" when you want to do a backup. You could also throw this into a cron job.