git - git pull --rebase=preserve 总是在重新定位一些东西,即使是在最新的分支上
问题描述
我把这个贴在了git@vger.kernel.org
,但到目前为止没有得到任何回复。
请使用本地存储库尝试以下简单的 git 操作:
mmatrosov@Mikhail-PC:~/test$ git init --bare server
Initialized empty Git repository in /home/mmatrosov/test/server/
mmatrosov@Mikhail-PC:~/test$ git clone server local
Cloning into 'local'...
warning: You appear to have cloned an empty repository.
done.
mmatrosov@Mikhail-PC:~/test$ cd local
mmatrosov@Mikhail-PC:~/test/local$ echo a > a && git add . && git commit -m A
[master (root-commit) a34c21f] A
1 file changed, 1 insertion(+)
create mode 100644 a
mmatrosov@Mikhail-PC:~/test/local$ git push
Counting objects: 3, done.
Writing objects: 100% (3/3), 205 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To /home/mmatrosov/test/server
* [new branch] master -> master
mmatrosov@Mikhail-PC:~/test/local$ git pull
Already up-to-date.
mmatrosov@Mikhail-PC:~/test/local$ git pull --rebase=preserve
Rebasing (1/1)
Successfully rebased and updated refs/heads/master.
正如你所看到的,裸运行git pull
只是告诉我一切都是最新的。但是,运行git pull --rebase=preserve
会触发某些东西的变基。如果不需要花费大量时间(尤其是在 Windows 上),这将不是问题。为什么会发生这种变基?它是完全冗余的并且减慢了拉取操作。对我来说似乎是一个错误。
请注意,这对我很重要,因为我想设置git config
--global pull.rebase preserve
. 但是由于这个问题,获取最新的存储库需要很多时间。这是非常令人沮丧的。
经测试:
- Windows 10 版本 1803 中的 git 版本 2.19.0.windows.1
- Ubuntu 16.04.3 LTS 中的 git 版本 2.7.4(在 WSL 内)
解决方案
推荐阅读
- r - 使用条件和子类别过滤(分层)数据
- elasticsearch - 在 ruby fiter 下使用 Time.parse 时,Logstash 解析失败
- java - Kubernetes 外部连接到 Mongodb 集群
- javascript - 一个函数中有多个事件处理程序
- elixir - JSON 响应的单元测试,匹配 JSON 响应以断言键和值
- r - 在库函数中分配变量
- angular - Angular 6.x 元标记 OG:描述不适用于 FB
- unit-testing - Rails 升级后的神秘 rspec 错误
- javascript - 如何使用 JS 动态创建 SVG 文本元素
- python - 处理的 python 是固定在一个 CPU 上,还是可以使用多个 CPU 超时?