我是git的新手,我正在尝试理解一些东西。
1.创建并 checkout 功能分支。
1.做出改变,提交并推动。
- checkout 主分支,进行更改,提交并推送。
1.查看功能分支,单击主分支并重新设置基础。(当选择特征分支时)->将特征重新定位到主特征上。
1.解决冲突后,在特性分支的Git历史中,我有:来自主分支的提交(通过rebase添加),来自特性分支的提交。
1.此时,我的特性分支显示了一个传入提交和一个传出提交。(在Intellij中)->我正在试图理解为什么会发生这种情况。
重新定位前:
$ git log --oneline --decorate --graph feature main
* 1571a72 (HEAD -> main, origin/main) commit main branch
| * 4768d6b (origin/feature, feature) commit feature branch
|/
重新定位后:
* 4674fe5 (HEAD -> feature) commit feature branch
* 1571a72 (origin/main, main) commit main branch
在我再次更新特性分支之后,从第6点开始使用传入的提交
* f3f3735 (HEAD -> feature) commit feature branch
* 7a42764 commit main branch
* 4768d6b (origin/feature) commit feature branch
| * 1571a72 (origin/main, main) commit main branch
|/
非常感谢。
1条答案
按热度按时间vuktfyat1#
首先,让我们解决您的问题:
这里的教训是,每当你重写本地分支时,如果你已经推了它,你就不想再把旧版本的分支拉回来。当你拉的时候,默认情况下,它会将你的旧版本合并回来,这会给你一个提交的副本。如果您使用
pull --rebase
,它会将您的分支重新定位到旧版本的分支上,这将使您保持您所看到的状态。您在第6步中所做的“更新”将您的分支机构的旧副本。而不是拉,你想吹走你的旧版本的分支,并用你的新版本和改进版本的分支替换它,要做到这一点,你必须强制推。