如何在git中标记未解析的分支?
背景 在我正在处理的存储库中 有一个主分支如何在git中标记未解析的分支?,git,github,version-control,gitlab,commit,Git,Github,Version Control,Gitlab,Commit,背景 在我正在处理的存储库中 有一个主分支master和一个受保护的开发分支stage 我们开发人员将所有mr发送到stage,管理员在适当的时候用stage更新master 我所做的 所以我在我的分支上,我们称之为changesA。我从2天起就一直在做这件事,在这期间,合并了一些分支后,阶段分支被更新了 今天,在用我的更改更新了我的远程分支之后,我退出了这个阶段- git pull origin stage 有一些合并冲突,比如说在10个文件中。我解决了这些问题并推动了这些变化。现在,我的远
master
和一个受保护的开发分支stage
我们开发人员将所有mr发送到stage
,管理员在适当的时候用stage
更新master
我所做的
所以我在我的分支上,我们称之为changesA
。我从2天起就一直在做这件事,在这期间,合并了一些分支后,阶段分支被更新了
今天,在用我的更改更新了我的远程分支之后,我退出了这个阶段-
git pull origin stage
有一些合并冲突,比如说在10个文件中。我解决了这些问题并推动了这些变化。现在,我的远程分支将使用stage更新。在我的提交历史记录中创建了一个新的合并提交,包含152个更改的文件(1587个添加文件和4543个删除文件)
我意识到我在解决这些冲突时犯了一些错误。所以我恢复了我的合并提交。我的提交历史记录中添加了一个新的恢复提交,其中包含152个更改的文件(4543个添加和1587个删除)
我在我的分支上做了更多的工作,并用这些更改更新了我的远程分支
有什么问题
在这一点上,我预计我的分支将落后于舞台,因为我恢复了我的拉力。我希望在我恢复合并提交时基本上没有解决的10个文件中会有冲突
但是当我运行相同的命令时,它表明我的分支已经更新了stage。我相信出于某种原因,我的分支已被标记为已解决,并随阶段更新
这里出了什么问题?我如何解决同样的10个冲突
我尝试过的(没有成功)
git fetch
在我的分支上git checkout-b changescopy
创建了分支的副本,并尝试了git pull origin stage
。我收到了同样的信息李>
git reset——硬头~4
到了我在退出后台之前推动更改的地步git拉原点阶段
。这次我要再次解决这10个冲突。(这次我做对了!)git cherry pick
我在恢复后推动的最新更改git推送原点更改a--force
。因为我回到了历史,所以需要使用Force,所以我的本地分支位于我的遥控器后面,git会在拉之前拒绝任何推送。我独自处理我的分支,所以我知道如果我强制推送,我不会覆盖任何更改在最后一次合并后一个分支完成的Ant更改(恢复提交、修复等)不会受到从阶段到分支的新合并的影响
--s--s (stage)
\ <= merge already done
--a--a--M--[revert]--[fixes]
--s--s(阶段)
\git revert是对提交进行反向更改的git提交。在git约定中,这是向前发展的。您不必担心git pull origin阶段的显示已经是最新的,因为阶段分支中的更改是最新的。阶段分支中的所有提交都已在您的分支上。你应该检查的是当你从一个阶段到另一个阶段创建PR时会发生什么。如果这显示了正确的更改,那么你应该很好。我检查了一些文件,我的分支没有阶段中的更改。当我创建公关时,它假设my branch是真实的,并覆盖了那152个文件。最简单的方法是:从stage
创建一个新分支,然后cherry pick
将分支提交到此新分支,并修复再次出现的任何冲突。或者在合并分支中的stage之前,通过执行git reset--hard
和然后再次进行合并。确保将当前提交保留为分支,以便在需要时可以再次返回。请注意,没有已解决或未解决的分支。分支名称只是标识一些提交。提交要么存在(然后可以通过哈希名称标识),要么不存在。这就是Git中分支的全部内容!(好吧,几乎所有的。:-)