git - git pull --rebase 根本不容忍任何修改过的文件,这与 git pull --no-rebase 相反
问题描述
请注意:
C:\xyz\55 [release/r-855 ↓1 +0 ~16 -0 !]> git pull --rebase
error: cannot pull with rebase: You have unstaged changes.
error: please commit or stash them.
C:\xyz\55 [release/r-855 ↓1 +0 ~16 -0 !]> git pull --no-rebase
From http://server.xyz.com:8080/tfs/defaultcollection/code/_git/xyz
* [new branch] wfm/tfs485759 -> origin/wfm/tfs485759
Updating 5f010c356..871eb9ca2
Fast-forward
.../PayrollService/DAL/Payroll/PayRunDataProviderDAL.cs | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
C:\xyz\55 [release/r-855 ≡ +0 ~16 -0 !]>
我的结论是git pull --rebase
根本不容忍任何修改过的文件。这与 不同git pull --no-rebase
,只要修改后的文件不与新提交发生冲突,就可以了。
这有点糟糕。
我的结论正确吗?或者可以配置为在修改文件时git pull --rebase
表现得更像?--no-rebase
解决方案
git rebase
,与git merge
(通过正常拉动完成)相反,需要干净的工作树。
(git merge
只要求合并的文件当前没有被修改)
要自动获得干净的工作树,请使用git config --global rebase.autostash true
.
这样,你的git pull --rebase
意志就会奏效。
警告:
当远程历史是我们历史的后代时,“ git pull --rebase
” (man)忽略了配置变量,这已在 Git 2.36(2022 年第二季度)中得到纠正。rebase.autostash
请参阅Philippe Blain ( ) 的提交 3013d98(2022 年 1 月 13 日)。(由Junio C Hamano 合并——在提交 7a9ae6d中,2022 年 2 月 5 日)phil-blain
gitster
pull --rebase
rebase.autostash
:快进时的荣誉报道人:Tilman Vogel
帮助人:Junio C Hamano
签字人:Philippe Blain
pull --rebase
当其他历史是我们的后代(即
执行快进)时, “ ”在内部使用合并机制。
这来自这个线程,讨论是从一个功能请求开始的。在讨论中阅读其背后的基本原理有点困难,但对于所有相关人员来说,这似乎是一个既定事实,甚至不需要提及使用“rebase”完成的快速转发比使用“rebase”完成的要好得多“合并”,更重要的是,“合并”留下的结果与“变基”一样好(或优于)。
除了一件事。
因为 "
git merge
" ( man )不(也不应该)尊重rebase.autostash
,所以 " " ( man )在快进过程中用作(希望更好)替代 "git pull
" ( man )时需要阅读并转发它。git merge
git rebase
但是我们忘记了这样做(我们只在使用“命令行选项”调用自身时将“
--[no-]autostash
”添加到“git merge
”命令中。git pull
--[no-]autostash
确保 "
git merge
" 运行 git 并设置了--autostash
whenrebase.autostash
并用于代表 rebase 快进历史记录"。顺便说一句,此更改还涉及以下情况
- "
git pull --rebase
" ( man ) (没有其他命令行选项) 运行- "
rebase.autostash
" 未设置- 历史快进
在这种情况下,“
git merge
”以显式方式运行,--no-autostash
以防止它遵守merge.autostash
配置,这正是我们想要的。
毕竟,我们希望“ ”在被用于此目的时git merge
假装它是。git rebase
推荐阅读
- java - 在java中复制二维数组
- python - 取Python中数据透视表列之间的差异
- google-cloud-platform - 谷歌云平台自定义预测例程
- python - 如何根据基于另一个数据框的条件提取熊猫数据框的行
- ios - Flutter Spinkit 进度指示器
- elasticsearch - 创建没有映射的 Elasticsearch 模板
- python - 如何使用 python 在机器人框架中迭代具有不同值的测试
- sql - SQL Server - 从前几个月的“n”个中选择最大值
- c# - 如何解决泛型类
(它的构造函数参数也是通用的......例如:Param 参数)使用 Unity 容器?帮助!谢谢 - python-3.x - Python:BadZipFile:目录和标题中的文件名不同