合并冲突 - 没有进行变基?为什么我是大师?

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

我的分支(修复/消除属性含义歧义)和另一个想要合并到我更新的拉取请求中的存储库的暂存分支之间存在令人困惑的合并冲突。目前,我发现自己在某个主分支上等待其初始提交,但我想切换到我的分支,以便我可以提交它,我相信这应该自动更新拉取请求。

这是我迄今为止为解决合并冲突所做的尝试:

On branch fix/disambiguate-property-meaning
Your branch is up-to-date with 'origin/fix/disambiguate-property-meaning'.

...

git pull --rebase upstream staging

产生以下消息:

 From https://github.com/FreeCodeCamp/FreeCodeCamp  
 * branch            staging    -> FETCH_HEAD
   57bb224..25e6d42  staging    -> upstream/staging
...
CONFLICT (content): Merge conflict in seed/challenges/01-front-end-development-certification/basic-javascript.json  
error: Failed to merge in the changes.  
Patch failed at 0001 fix/disambiguate-property-meaning, make JSON valid in basic-javascript.json #9096  
The copy of the patch that failed is found in: .git/rebase-apply/patch  

When you have resolved this problem, run "git rebase --continue".  
...

在继续编辑包含冲突的文件之前,我运行 git Branch 来让自己放心我正在处理和收到哪些分支:

* (no branch, rebasing fix/disambiguate-property-meaning) 
   fix/disambiguate-property-meaning 
   staging

这个分支的情况对我来说看起来不错。 (我错过了什么吗?)因此,在 basic-javascript.json 中,我删除了指示冲突的 git 标记。我的文件的其他所有内容看起来都完全符合我的需要。我保存并关闭了它。

回到我的终端,我跑了:

git add basic-javascript.json    
git rebase --continue    

我收到以下令人费解的问题:

No rebase in progress?

我还没有找到对此的明确解释。这个问题真正要求我做什么?如果这是对变基成功的确认,正如一些答案似乎暗示的那样,那么措辞上的选择是多么悲惨啊!

我接下来要做的是将 basic-javascript.json 提交到 我的分支,然后(自动)更新拉取请求;我相信这相当于说,然后将这些更改从我的分支合并到远程上游的staging分支。

我该如何做到这一点?我现在不知何故位于某个回购协议的主分支上。

svn patch git-rebase pull-request merge-conflict-resolution
2个回答
2
投票

No rebase in progress?
表示rebase已经完成。变基是否成功取决于它是否达到了您的预期。幸运的是,我的做到了。

我完成提交到我的分支的方法是导航回本地正确的文件路径。我不小心在本地项目的子目录中初始化了一个 git 存储库,这就是创建神秘的 master 分支和神秘的起源的原因。

经验教训:注意文件路径,并在克隆项目的正确(根)文件夹中执行所有拉取、压缩、提交、推送、变基和其他 git 操作。


0
投票

实际上,在 Git 2.45(2024 年第 2 季度)中,第 3 批,更改了错误消息。

请参阅 Harmen Stoppels (haampie)

commit 244001a(2024 年 2 月 21 日)。
(由 Junio C Hamano --
gitster
--
合并于 commit 2b5738c,2024 年 3 月 1 日)

rebase
:减少警告的被动攻击性

签字人:Harmen Stoppels

当你运行

git rebase --continue
(man) 且没有进行 rebase 时,git 会输出
fatal: No rebase in progress?
,这不是一个问题,而是一个陈述。

使其显示为语句,并使用小写字母以与错误消息样式保持一致。

所以现在,你会看到:

fatal: no rebase in progress
© www.soinside.com 2019 - 2024. All rights reserved.