git - rebase 提交顺序混乱
问题描述
我得到这个快照git rebase
:
您会看到功能提交在 rebase 之后位于 master 的前面。
但是,我在我的 repo 中进行了测试(origin/repo master vs local/repo master)。
提交顺序是本地/repo master 在 rebase 之后位于前面。
结果:
提交的时间顺序:
local/repo master 1111
origin/repo master 333
origin/repo master 444
origin/repo master 555
从变基后
$ git log --oneline --graph
* a7b57ce (HEAD -> master) 1111 # this commit of local/repo master become the latest.
* 4255c42 (origin/master, origin/HEAD) 555
* 0eafba2 444
* 4838fca 333
这违反了显示被重新设置的分支提交应该在启动重新设置的人之前的快照。
解决方案
您变基的方向会影响结果:
将 foo 重新定位到 bar 上:
git log --oneline --graph foo bar
* 7b56f8f (HEAD -> bar) 33
| * 4ac5cb6 (foo) 22
|/
* 0d5ab43 11
git checkout foo
git rebase bar
git log --oneline --graph foo bar
* 35c0b9e (HEAD -> foo) 22
* 7b56f8f (bar) 33
* 0d5ab43 11
将 bar 重新设置为 foo:
git log --oneline --graph foo bar
* 7b56f8f (HEAD -> bar) 33
| * 4ac5cb6 (foo) 22
|/
* 0d5ab43 11
git checkout bar
git rebase foo
git log --oneline --graph foo bar
* affebfd (HEAD -> bar) 33
* 4ac5cb6 (foo) 22
* 0d5ab43 11
推荐阅读
- amazon-web-services - 如何限制来自 EC2 实例的传出网络访问?
- javascript - 将 Qualtrics 问题定向到特定文件夹
- c - 在递归函数调用期间添加 return 关键字和不添加 return 关键字有什么区别?
- c# - 非锁定 Sqlite 备份
- mysql - MariaDB:选择 val_1,max(value_2),按 value_3 分组
- visual-studio - 从 Visual Studio Code 授权 Salesforce
- python-3.x - 框架中的 Tkinter 小部件
- android - 使用 AccessibilityService 和 TileService 锁定设备
- python - 从嵌套循环中提取数据
- java - 使用 Redis Spring 在 Redis 上进行多字段查询