On 2008.10.29 16:55:48 +0800, Liu Yubao wrote: > Hi, > > I often feel tracking branches are useless to me, because there are remote > branches and I work on my private branch in most time. > > repos > | > |-- my (private branch, do my dirty work) > |-- master (tracking branch) > |-- origin/master (remote branch) Actually, origin/master is the "[remote] tracking branch". master is just a branch that has config settings for "git pull" defaults. ;-) "Remote branches" are the actual branches on a remote repository. > To avoid conflict when execute `git pull` and make the history linear, I work > on branch "my" instead of "master". Here is my work flow: > > 1) use `git fetch` or `git remote update` to synchronize branch > "origin/master" with branch "master" in remote repository; > 2) create a new private branch to polish my commits and rebase it against > "origin/master"; > 3) at last push this new branch to the remote repository or ask the upstream > developer to fetch it(no `git pull` because we want history as linear > as possible). git pull --rebase > I don't want to bother with the tracking branch "master", it's identical > with "origin/master". Because `git checkout -b xxx <remote_branch>` > will create a tracking branch "xxx" by default, so my question is: > do most people feel tracking branches useful? Tracking branches (origin/* etc.) are very useful :-) And branches that have "git pull" defaults (what you called "tracking branch") are also useful. In your case, you probably want: git checkout -b my-stuff origin/master git config branch.my-stuff.rebase true and then you can do: git pull Instead of: git fetch origin git rebase origin/master You can also setup branch.autosetuprebase, to automatically get the rebase setup, so you can skip the call to "git config" above. And you can just delete the "master" branch if you don't use it. There's nothing that forces you to keep any branches around that you don't use. But that doesn't affect the usefulness of tracking branches or branches that have "git pull" defaults :-) > BTW: I feel the terminalogy "remote branch" is confused, because I must > synchronize it with `git fetch`. I feel it's better to call it "tracking > branch" // seems will lead to bigger confusion to experienced git users:-( See above, that's already the case ;-) Björn -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html