我发现Git有一点奇怪的行为。
因此,我在本地有一个特性分支,比如F1,我向它添加了一个commit,C1。我把它推到回购,得到评论,最后合并到主人。所以主人把我的承诺C1放在最上面。
然后,我意识到不需要对C1进行一些更改。因此,我创建了另一个特性分支,比如F2,是从最新的中创建的。幸运的是,提交C1仍然处于顶端。因此,我修改了C1本身,并用
'git提交--修改-m“新消息”
推着树枝,让它复习,把它合并到主人那里。
我原以为C1仍将是大师中的佼佼者,并且修改了提交信息。但是它不是,新提交在顶部,新提交消息,C1位于第2位置。
这是否如预期的“修正”行为?
发布于 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“开始。
https://stackoverflow.com/questions/73649220
复制相似问题