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

浙公网安备 33010602011771号