前言

git仓库如果有人提交了一次改动,然后你本次改动也修改了相同的文件,提交数据时就会触发文件diff,此时git会产生一条merge记录,我们需要手动调整好冲突保存在push到仓库。

如果merge产生太多了会对整个git历史记录变得复杂,实际上大部分情况下这个meger内容是不重要的,有的公司会要求我们在拉取数据时使用rebase,用于去除meger的产生。

命令一般是:

git pu11 -r

命令中的 -r 选项实际上是 --rebase 的简写形式。它告诉 Git在从远程仓库拉取更新时,使用rebase 而不是默认的 merge 策略。

下面解释-下 rebasemerge 的区别以及 -r 选项的作用:

  1. Merge: 默认情况下,git pull 命令会使用 merge 策略。这意味着 Git会将远程仓库的更新合并到本地分支上,形成一个新的合并提交。这样会在历史记录中产生一个新的合并节点,可能会导致历史记录变得复杂。
  2. Rebase: 使用 rebase 策略时,Git 会将本地的提交暂存起来,然后将运程仓库的更新应用到本地分支上,然后再将暂存的本地提交依次应用在最新的提交之上。这样可以保持一个线性的提交历史,没有额外的合并节点,更加清晰简洁。

git pull -r 命令实际上是 git pull --rebase 的简写形式,它告诉 Git 在立取远程更新时使用 rebase 策略,从而避免了生成额外的合并提交。通常情况下,使用 rebase 可以保持一个干净的、线性的提交历史,更容易阅读和管理。

但是每次都要自己输入-r 就会很麻烦,甚至还没法直接用vscode的git可视化管理。

教程

只针对当前git仓库

设置默认rebase,在当前git项目中运行终端,输入:

git config pull.rebase true

我们还可以将后面的值去除,用于查询:

git config pull.rebase

取消默认设置:

git config pull.rebase false

当我们设置为true后,使用pull命令会自动变成git pull -r,这样即不用担心命令漏输入,vscode的可视化git也能用了。

全局配置

设置默认rebase :

git config --global pull.rebase true

查询:

git config --global --list

取消:

git config --global pull.rebase false
分类: Git 笔记 标签: gitrebase

评论

暂无评论数据

暂无评论数据

目录