I have the following alias defined: sync = "!f() { cbr=$(git rev-parse --abbrev-ref HEAD); git co $1 && git pull && git co $cbr && git rebase $1; }; f" The goal is to basically update a local branch which tracks a branch on a remote, and then rebase my local topic branch onto that updated local branch. I do this instead of just rebasing onto origin/master. Example: git checkout master git pull --rebase origin master git checkout topic1 git rebase master I could do this instead but not sure if it is recommended: git checkout topic1 git fetch git rebase origin/master Any thoughts on the alias I created? I'm a Windows user and still new to linux stuff, so if it sucks or could be simplified just let me know. And as a secondary question, just curious what people think about rebasing onto a remote tracking branch. When I do merges I usually refer to the remote branch, but during rebase I use the local branch instead, but I don't know if there is any functional reason to not skip the local branch and go straight to the remote tracking branch (it saves a step). -- 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