git pull --rebase

发布时间 2023-05-23 13:17:28作者: 童年的回忆

为了避免git自动合并代码并且提交无意义记录,使用:

git pull --rebase

来拉取远端代码,也可以一劳永逸:

git config --global pull.rebase true

但需要注意,当本地有未提交的代码时,使用git pull --rebase会报错

Cannot rebase: You have unstaged changes
Please commit or stash them.

 

这个命令做了以下内容:
a.把你 commit 到本地仓库的内容,取出来放到暂存区(stash)(这时你的工作区是干净的)
b.然后从远端拉取代码到本地,由于工作区是干净的,所以不会有冲突
c.从暂存区把你之前提交的内容取出来,跟拉下来的代码合并

所以 rebase 在拉代码前要确保你本地工作区是干净的,如果你本地修改的内容没完全 commit 或者 stash,就会 rebase 失败。

如果本地有暂时不想提交的代码,就先stash,pull完再pop出来。