Bob
Bob

Reputation: 8504

Working with Git branches

I have a Rails app deployed on Heroku and I have a git repo that I'm currently working on with uncommitted code changes. In the meantime, I need to make changes to the source on Heroku independently of the local repo. Can I do the following:

  1. Clone the Heroku git repo on the same development machine with a different app name though with the same account
  2. Make changes to the new local repo
  3. Commit those changes to the new local repo
  4. Push those changes to the Heroku repo
  5. Resume working on my original local repo

Will this approach work?

Upvotes: 0

Views: 180

Answers (4)

d135-1r43
d135-1r43

Reputation: 2485

My work-cycle: I always keep a master branch with the #1 rule "always push to Heroku after committing something to master". If I code on something that I do not want to deploy immediately, I have to branch.

I know this works not for all use cases, but having always a branch that is identical to the app that is productive on Heroku makes me sleep better ;)

Upvotes: 0

ranendra
ranendra

Reputation: 2512

If you clone the heroku repository to a separate directory, made changes and push it from there, then there is a possibility of conflicts later down the road.

If its only the issue with the uncommitted changes then certainly you can stash them using "git stash" and later retrieve it using "git stash pop".

Upvotes: 0

John Beynon
John Beynon

Reputation: 37507

Yep, that workflow would work, or stash them - and don't forget if you do make a clone of the heroku repo you'll have made changes to a different clone of the repo and you'll need to make those changes in your original local repo.

In future I'd suggest that you assume that your 'master' branch is what's live on Heroku and branch of that to work in - you can even push this branch into a new app for testing purposes. This way bug fixes can be performed on your local master branch (or another branch and merged into master) and pushed to heroku and then when you've finished your new work you merge the branch back into master and deploy that to your live environment. I wrote a blog article on the subject a while back, here

Upvotes: 3

Noufal Ibrahim
Noufal Ibrahim

Reputation: 72835

I haven't used heroku but if I wanted to make changes to a deployed application while I had unsaved changes in my sandbox, I would do one of the following.

  • stash my local changes, cut a branch from the point where I want to make a fix, make it, deploy it, switch back to my original branch and pop from the stash.

  • Commit my unsaved changes (into the current branch - say work), cut a branch from the point where I want to make a fix, make my fix, deploy it, switch back to work, reset my HEAD to before my "temporary" commit and resume work.

Unless you're using git in an unconventional fashion, there's no need to make another clone.

Upvotes: 0

Related Questions