I've looked at a ton of articles about how to rebase with Git and it makes sense...or at least I think it does. However, I'm struggling with the following...

For this scenario we have the following branches:

* master (local)
* origin/master
* jheigs (local)
* origin/jheigs

Ok, so now let's say that origin/master is ahead by 1 commit. So, I was told from articles and the dev team I am working on is to do the following on the jheigs branch:

```
$ git add ...
$ git commit ...
$ git status (ensure everything is up-to-date locally)
$ git pull (again, check and ensure that everything is ready to go)
$ git pull --rebase origin master
$ git push (defaulting to origin/jheigs)

```

1. When the rebase runs fine, what I have run into is that origin/jheigs and local jheigs have HEAD commits that don't match (given the above rebase), so at times I may have to pull and then push, which can cause conflicts. What I am confused about is...should I instead be using:

```
$ git push --force origin jheigs (?)

```
2. Second question...now, let's say that I've pushed and jheigs has been rebased correctly with origin/master. No conflicts existed and my jheigs and origin/jheigs are now ahead of master by 1 commit. Ok, a day goes by and I need to make more changes. So I make those changes on jheigs and add/commit. However, origin/master has no additional updates. Essentially I'm still ahead of origin/master by 1 commits (soon to be 2). Do I still follow the same process above? Or do I just add/commit and push to origin/jheigs without rebasing since I'm already ahead of origin/master?

I apologize that this is so length, but I thought I had this figured out and it's just not as smooth as I thought it would be. I want to be careful with rebasing, so any help is appreciated!