git 拉取仓库的时候默认rebase
前言
git仓库如果有人提交了一次改动,然后你本次改动也修改了相同的文件,提交数据时就会触发文件diff,此时git会产生一条merge记录,我们需要手动调整好冲突保存在push到仓库。
如果merge产生太多了会对整个git历史记录变得复杂,实际上大部分情况下这个meger内容是不重要的,有的公司会要求我们在拉取数据时使用rebase,用于去除meger的产生。
命令一般是:
git pu11 -r
命令中的 -r
选项实际上是 --rebase
的简写形式。它告诉 Git在从远程仓库拉取更新时,使用rebase 而不是默认的 merge 策略。
下面解释-下 rebase
和 merge
的区别以及 -r
选项的作用:
- Merge: 默认情况下,
git pull
命令会使用 merge 策略。这意味着 Git会将远程仓库的更新合并到本地分支上,形成一个新的合并提交。这样会在历史记录中产生一个新的合并节点,可能会导致历史记录变得复杂。 - 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
版权申明
本文系作者 @木灵鱼儿 原创发布在木灵鱼儿站点。未经许可,禁止转载。
暂无评论数据