所以我的同事正在编辑回购中的一些代码,但是她没有撤消最近的更改,所以软件不允许她提交更改。
我们进入了shell并撤回了她已经省略的提交,并且能够推动,唯一的问题是它将这些更改引入了她的分支并将这些提交归功于她。
看起来像这样:
A-B-C-D-E(说D和E是别人的)
我的同事有这个:
A-B-C,想再添加一些。
所以她拉了D和E并推动了这些改变,现在它看起来像这样:
A-B-C-D-E-F,但D,E和F的更改现在来自她的帐户。
是否可以保留她的更改(F),但是时间表会在D和E归于其他人的情况下恢复吗?
谢谢!
问题的图形表示:
A-B-C-D-E(最新版本的主人)
A-B-C(同事有此)
A-B-C-F(同事编辑)(分支机构发生分歧)
!ERROR! (同事试图提交并推动)
A-B-C-D-E-F(同事将主人合并到她的分支机构)
A-B-C-D-E-F(同事推)
GitHub UI现在不显示更改D-E,它们被集中到“合并分支'主人'......”
答案 0 :(得分:0)
如果您使用git merge $main_branch
,GitHub的UI可能会显示一些元数据,使您看起来像是暂时实施了更改,但是当您最终将所有内容合并到主分支中时,一切都会好起来的。如果您仍然担心,这里最好的选择就是:
从master / current_branch签出一个新分支(改变来自"其他团队成员",即D,E提交)
git cherry-pick $your_commits
。如果F也在主分支上,订单现在将是:D-E-A-B-C或D-E-F-A-B-C。
答案 1 :(得分:0)
使用git log
检查哪个提交是合并之前的提交。注意sha。
然后你可以使用以下方法重置它:
git reset --hard commit_sha
此外,如果您想使用您的示例,请删除D和E,然后执行以下操作。除了它也将删除F.也就是说,最后3。
git reset --hard HEAD~3