吉特。当原始分支和本地分支出现分歧并且合并进展不顺利时该怎么办?

问题描述 投票:0回答:1

感谢您花一点时间阅读本文。 我只有 git 的基本知识,遇到了一个问题,我无法理解。 我的远程来源(主要)和本地(主要)出现了分歧。新的本地变更已提交,但尚未推送。与此同时,远程起源也得到了一些额外的提交。我尝试将远程主文件合并到本地主文件中,但通过这样做更改了一些较新的本地文件(较旧的远程文件更改了较新的本地文件),最终得到了合并状态,我不想再次推送到远程。

Origin: a---b---c---d
             \       \
local :       e---f---Merge :(
  • 有没有一种方法可以将特定的本地提交推送到远程,这样我就可以在远程丢失本地提交,而不破坏所有内容?
  • 首先,变基是更好的解决方案吗?有什么方法可以清理/撤消吗?

提前谢谢大家。

git merge gitlab cherry-pick
1个回答
0
投票

并发修改总是很痛苦。缓解这种情况的一种策略是 - 尽可能频繁地进行远程更改,以确保您的代码不会分歧太大,合并得越晚,可能会越痛苦。

现在,您可以执行以下操作 - 从当前本地 (local-b) 检出一个新分支。这将保留您认为想要部分带到主分支的所有提交。重置您当前的本地分支以使其代表您的远程分支,直到提交 #d。然后你可以从 local-b 中挑选提交。另外,正如所指出的,如果远程和本地双方的相同文件都已更改。这实际上取决于您要进行哪些更改 - 我的更改/他们的更改/两者。为此,您应该使用合并工具来帮助您可视化代码中发生的情况。此类工具会在 3 个时间点显示您的代码 - 两端修改之前的常见状态、您的更改、它们的更改。

© www.soinside.com 2019 - 2024. All rights reserved.