首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >git修改:提交未修改

git修改:提交未修改
EN

Stack Overflow用户
提问于 2022-09-08 12:36:58
回答 1查看 51关注 0票数 0

我发现Git有一点奇怪的行为。

因此,我在本地有一个特性分支,比如F1,我向它添加了一个commit,C1。我把它推到回购,得到评论,最后合并到主人。所以主人把我的承诺C1放在最上面。

然后,我意识到不需要对C1进行一些更改。因此,我创建了另一个特性分支,比如F2,是从最新的中创建的。幸运的是,提交C1仍然处于顶端。因此,我修改了C1本身,并用

'git提交--修改-m“新消息”

推着树枝,让它复习,把它合并到主人那里。

我原以为C1仍将是大师中的佼佼者,并且修改了提交信息。但是它不是,新提交在顶部,新提交消息,C1位于第2位置。

这是否如预期的“修正”行为?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-09-08 18:04:11

之所以发生这种情况,是因为在将提交C1合并到master之后,您修改了提交它。一旦提交在远程分支上(在本例中为master),删除master上提交的唯一方法就是重写master分支并强制推送它。对于共享分支(如master ),这通常是不允许的,因此您需要在另一个提交中合并。如果您在将提交合并到master之前修改了提交,那么它就会像您预期的那样工作。

这回答了你的问题,但作为一个重要的附带说明,我对以下声明感到关切:

--然后我意识到,不需要对C1进行一些更改。

我敦促您查看更新的master与您的新修订承诺,以确保您实际上完成了您的目标。事实上,您试图“删除”一些东西,而不是“添加”更多的东西,这意味着您很可能没有成功地做到这一点。原因如下:

假设您在commit C1中添加了A和B,但随后决定只添加A。master分支有A和B同时具有A和B。现在在本地,您修改了commit C1,使C1'只包含A。当您将其合并到master中时,它可能什么也不做,因为master已经有A了,C1'中没有任何东西说要“删除B”。如果您发现发生了这种情况,那么请确保在另一个新的(第三次)提交中从最新的master和"delete B“开始。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73649220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档