How to keep track of origin/master in my dev git branch

I am new to git and I would like to know how to tackle a very basic scenario. I read so many posts on stackoverflow about git but still can’t figure out the answer.

We have an origin/master remote branch that everybody is working on.
I have a featureA that I want to implement and might take time to develop. Meanwhile, people might be checking in code to the origin/master.

  • Does git record history of branch heads?
  • GIT: remove remote branches with no local tracking branch
  • How to choose the right branch/fork to use by looking on the github's network graph?
  • Git squash commits with merged branch
  • Unable to see the newly created branch after cloning my own git repository on my laptop
  • Branch setup when features are interrelated
  • What would my workflow look like and how should I go about setting up my git branch, given the following needs:

    1. I want to be able to commit code changes to my branch and push them to a remote branch on our server so I don’t loose the changes in case my computer is fried.

    2. I want to keep my branch up-to-date with the master branch.

    3. I want to minimize regular merges. I like to concept of git rebase so I would like to maximize its use and hence fast-forward merges.

    4. At some point we will have to merge my branch FeatureA into origin/master.


    How do I setup a branch that pulls from origin/master but pushes to origin/MY-BRANCH?

    What would my workflow look like?


    Thank you @will-pragnell! What is the difference between your solution and the following.

    This page on github suggest:

    In order to get the latest updates from the development trunk do a one-time setup to establish the main GitHub repo as a remote by entering:

    $ git remote add upstream git://
    $ git fetch upstream
    $ git checkout master
    $ git rebase upstream/master
    $ git checkout 100-retweet-bugfix

    [make sure all is committed as necessary in branch]

    $ git rebase master

  • What's the best practice of going GIT when upstream is 100% CVS?
  • Remove historical trailing white spaces in Git
  • GitHub for Windows does not see changes in repository
  • Fetching from upstream github repository fails by hanging up
  • show current GIT branch name in windows command prompt
  • How can I do a git pull in Maven?
  • 2 Solutions collect form web for “How to keep track of origin/master in my dev git branch”

    You probably don’t want a branch that pulls from master and pushes to your own branch. What you want is to pull from master on to your local master, handle rebasing locally, and then push to your own remote branch for the feature. This is a fairly standard workflow and gives you complete control and a minimal amount of merging. Personally I would do it like this:

    Create a new local branch

    git checkout -b myFeature

    Push that to a new remote branch (see this stackoverflow question if you need more info on this step)

    git push origin myFeature

    Now you can work away hapily on the myFeature branch, pushing using the above command when you need to without messing up the master branch. When you need to get hold of commits that others have done on master, you can do so like this:

    git checkout master
    git pull (this will just fast-forward if you don't make any local changes to master)
    git checkout myFeature
    git rebase master

    When your feature is finished, you can the merge or rebase your branch back in to master so that everyone else gets your new feature. Like this:

    git checkout master
    git merge myFeature
    git push origin master

    git checkout -b FeatureA ( create and checkout branch )
    git push origin FeatureA ( push your newly created branch to origin )

    Work on new branch FeatureA. You do not want frequent merges then to rebase

    git rebase origin  

    In future whenever you want to merge into master.

    git checkout master  
    git merge FeatureA  
    git push origin master  
    Git Baby is a git and github fan, let's start git clone.