git pull --rebase
What’s happening here? Git will rewind (undo) all of your local commits, pull down the remote commits then replay your local commits on top of the newly pulled remote commits. If any conflicts arise that git can’t handle you’ll be given the opportunity to manually merge the commits then simply run git rebase --continue
to carry on replaying your local commits.
福音: 把本地的commits放到remote commit的上面,一定程度上避免了交叉感染
Tell git to always rebase when pulling, to do this on a project level add this to your .git/config
file:
1
2
|
|
Or do it all on the command line with git config branch.master.rebase true
Add a global config option to always rebase when pulling
1
2
|
|
Or again do it all on the command line with git config --global branch.autosetuprebase always
-
And the final way, which is what I personally use, in
~/.gitconfig
1 2
[alias] pl = pull —rebase
git pl
(or in my caseg pl
as I havegit
aliased tog
) and it will automatically rebase. If I want to do a pull and not rebase for a specific reason I can use the commandgit pull
which will do an pull without rebaseing.
Of course you could use the 3rd solution and run the command git pull --no-rebase
but that involves more typing, and I’m a lazy typer!
/// GIT ALIAS 福利
http://kernowsoul.com/blog/2012/06/20/4-ways-to-avoid-merge-commits-in-git/