【发布时间】:2017-03-12 21:46:05
【问题描述】:
我们必须向现有项目添加新功能。 所以每个人都创建自己的分支来做一个特性。
现在,在我向我的特定分支添加了一些代码之后,我的队友告诉我最好使用 rebase 以使将来的合并更容易。
现在因为我们刚开始启动项目,很多小文件已经改变,比如 pom.xml 文件,.gitlab-ci.yml 文件,给了我很多合并错误。此外,虽然我一直在努力掌握整个 github 的内容,但我的队友同时添加了更多代码,我再也看不到树林中的森林了。
所以我要做的是保留我的新代码,但使用主分支中的所有代码更新我的特定分支。
如果我没记错的话,这正是 rebase 所做的对吗?
当我像这样执行变基时:
-git rebase master
它给了我 20 个合并错误。但事实是,自从我的分支第一次分叉以来,它会经历每一次更新,而且很多时候它只是被重写的同一个文件。所以我所做的只是将文件从 github 复制粘贴到我的项目中(它只有几个文件),然后仔细阅读每个合并错误,如果它源于我复制粘贴的文件,我只是跳过它们。
(也很奇怪的是,一些文件不断出错,即使我只是复制粘贴了我要变基到的分支中的确切文件)
然后当我最终克服最后一个错误时,它给了我这个
fatal: update_ref failed for ref 'refs/heads/dev_504':
cannot lock ref 'refs/heads/dev_504': ref refs/heads/dev_504 is at
XXXXXXX
but expected XXXXXXXX
Could not move back to refs/heads/dev_504
然后我重新启动计算机并得到这个
fatal: cannot resume: .git/rebase-apply/final-commit does not exist.
然后我中止 rebase,当我再次尝试时,我再次收到 20 个错误。
github 太复杂了,我想做的就是从主分支获取代码并将我的代码添加到其中(顺便说一下只有一个文件)。
那么我可以强制从主分支拉出然后添加我的文件吗?我觉得这不是你应该怎么做的。
附: : 我通过 maven 添加了一个库,这种影响会以任何方式拉动和推动吗?
谢谢
【问题讨论】:
-
如果你想让它变得更简单,你可以通过交互方式将所有提交重新设置在初始主节点上(即在你开始分支的提交上),然后将所有提交压缩成一个.然后在 master 上 rebase 那个单一的提交。您仍然会遇到冲突,但您只需解决一次即可。
-
这能回答你的问题吗? Git rebase failing
标签: java git github merge rebase