Git rebase测试
git rebase测试
-
初始化仓库
vim 1.c git init . git add 1.c git commit -m "add 1.c" .
此时为master分支。
-
尝试修改1.c文件,并提交:
git commit -m "modify 1.c" .
看git日志:
commit c2e038447c278fe21bb3f6eb66710269a78c3eeb Author: adam.zheng@gmail.com <adam.ma@gmail.com> Date: Mon Nov 13 09:28:38 2023 +0800 modify 1.c commit a90687872319df39f37cb55bf8a06d7d565cfdd7 Author: adam.zheng@gmail.com <adam.ma@gmail.com> Date: Mon Nov 13 09:27:39 2023 +0800 add 1.c
-
切换到新分支dev:
git checkout -b dev
修改并提交:
git commit -m "modify on dev" .
-
现在对比两个分支的提交:
master
commit 0c65a1cbc57468b823d5b561f123836ae57169ef Author: adam.ma@gmail.com <adam.ma@gmail.com> Date: Mon Nov 13 09:32:12 2023 +0800 modify on master 1.c | 1 + 1 file changed, 1 insertion(+) commit c2e038447c278fe21bb3f6eb66710269a78c3eeb Author: adam.ma@gmail.com <adam.ma@gmail.com> Date: Mon Nov 13 09:28:38 2023 +0800 modify 1.c 1.c | 1 + 1 file changed, 1 insertion(+) commit a90687872319df39f37cb55bf8a06d7d565cfdd7 Author: adam.ma@gmail.com <adam.ma@gmail.com> Date: Mon Nov 13 09:27:39 2023 +0800 add 1.c 1.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
dev:
commit 0ba2902ace62af877ea7d63a170bd8b76bdcf684 Author: adam.ma@gmail.com <adam.ma@gmail.com> Date: Mon Nov 13 09:29:43 2023 +0800 modify on dev 1.c | 1 + 1 file changed, 1 insertion(+) commit c2e038447c278fe21bb3f6eb66710269a78c3eeb Author: adam.ma@gmail.com <adam.ma@gmail.com> Date: Mon Nov 13 09:28:38 2023 +0800 modify 1.c 1.c | 1 + 1 file changed, 1 insertion(+) commit a90687872319df39f37cb55bf8a06d7d565cfdd7 Author: adam.ma@gmail.com <adam.ma@gmail.com> Date: Mon Nov 13 09:27:39 2023 +0800 add 1.c 1.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
-
rebase
git rebase master dev
对比dev分支上的commit的日志:
commit 0665b11fb858552795cbab9eecb43147ad095927 Author: adam.ma@gmail.com <adam.ma@gmail.com> Date: Mon Nov 13 09:29:43 2023 +0800 modify on dev 1.c | 1 + 1 file changed, 1 insertion(+) commit 0c65a1cbc57468b823d5b561f123836ae57169ef Author: adam.ma@gmail.com <adam.ma@gmail.com> Date: Mon Nov 13 09:32:12 2023 +0800 modify on master 1.c | 1 + 1 file changed, 1 insertion(+) commit c2e038447c278fe21bb3f6eb66710269a78c3eeb Author: adam.ma@gmail.com <adam.ma@gmail.com> Date: Mon Nov 13 09:28:38 2023 +0800 modify 1.c 1.c | 1 + 1 file changed, 1 insertion(+) commit a90687872319df39f37cb55bf8a06d7d565cfdd7 Author: adam.ma@gmail.com <adam.ma@gmail.com> Date: Mon Nov 13 09:27:39 2023 +0800 add 1.c 1.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+)
可以发现,就是在master分支的基础上,重新播放了下dev分支上的commit。
即rebase: play that branch(dev) on this branch(master),。
当然,可能会遇到merge conflict的,一般的处理方法为:
- 修改conflict的文件
- git add xxxx
- git rebase --continue
如果不想处理,可以git rebase --abort,退出完整的rebase过程;或者git rebase --skip,跳过rebase这个commit
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix