我的一个班级的教师选择创建一个包含文件夹的存储库,用于现在的I类课程的每个作业。这不是我第一次使用git或github刷,但这个设置很容易混淆。
每个作业都作为一个分支进行处理,并提交"提交"它作为我们的最终版本,我们创建一个拉回请求的请求。这很容易。但是我刚刚开始研究一个新项目,并且在创建它的分支时,我似乎已经包含了之前项目的所有提交,这样我的回购看起来像这样:
{ Project A Commits } { Pr. B Commits }
--o--o--o--o---o----o------------o----o ProjectB
/
o---------------------------------------- master
\
--o--o--o--o---o----o ProjectA
当它真的应该是这样的时候:
----o----o ProjectB
/
o---------------------------------------- master
\
--o--o--o--o---o----o ProjectA
我知道有rebase
这样的事情,但这似乎适用于与我自己进入的泡菜略有不同的场景。我真的不希望ProjectA堆积的所有更改都在ProjectB堆积,而我等待ProjectA的拉取请求得到教师的批准。
答案 0 :(得分:0)
您想要重写历史记录,以便第一个B提交的父级是根。
这就是git rebase
,特别是git rebase -i
的用途。
签出分支B,运行git rebase -i <ID of root commit>
,然后删除要删除的所有提交。