问题标签 [rebase]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
git - Hg:如何像 git 的 rebase 一样做 rebase
在 Git 中,我可以这样做:
我想知道如何在 Mercurial 中做同样的事情,我已经在网上搜索了答案,但我能找到的最好的是:git rebase - can hg do that
该链接提供了 2 个示例:
1. 我承认这一点:(将示例中的修订替换为我自己示例中的修订)
还不错,除了它将 pre-rebase MNO 作为未合并的头部留下并创建 3 个新提交 M',N',O' 代表它们从更新的主线分支。
基本上问题是我最终得到了这个:
这不好,因为它留下了应该删除的本地不需要的提交。
- 来自同一链接的另一个选项是
这确实会产生所需的图表:
但是这些命令(全部 6 个!)似乎比
我想知道这是否是 Hg 中唯一的等价物,或者是否有其他可用的方法,比如 Git。
git - 当手动将相同的更改应用于两个分支时,如何强制变基?
我的存储库看起来像:
这里“M - BCDE - N”是手动(不幸的是!)应用的更改,与单独的提交“A - B - C - D - E”大致相同(但似乎 GIT 不知道这些更改是相同的)。我想变基并获得以下结构:
即我想让 branch:release 与 branch:master 完全相同,并从 master 的 HEAD 分叉它。
但是当我在分支发布时运行“git rebase master”时,GIT 会报告很多冲突并拒绝 rebase。我怎么能解决这个问题?
对此的其他解释:我想“重新创建”分支:从 master 的 HEAD 从头开始发布。还有很多其他人已经为分支做了“git pull”:release,所以我不能使用 git reset + git push -f。
git - 我需要在变基后执行提交吗?
我刚刚将一个特性分支重新定位到另一个特性分支上(准备将所有内容重新定位到我的主人的头上),它涉及到很多棘手的合并解决方案。
变基会自动保存为某处的提交吗?
这些修改在哪里?我在 gitk 中看不到任何东西,或者git log --oneline
.
(当我在变基后合并回我的分支时也有同样的问题。)
git - 变基以及变基推送的提交意味着什么
人们常说,你不应该对你已经推送的提交进行rebase。那可能是什么意思?
git - 带有所有子分支的 git rebase 分支
是否可以使用 git 中的所有子分支重新设置分支?
我经常使用分支作为快速/可变标签来标记某些提交。
现在我想更改/rebase -i
master
改写origin/master
提交featureA-finished^
之后git rebase -i --onto origin/master origin/master master
,我基本上希望历史是:
但我得到的是:
有没有办法解决它,或者我是否坚持在新的重新提交提交上重新创建分支?
svn - SVN 合并,然后变基
我正在尝试找到将 SVN 分支中的更改重新集成到主干和 rebase 的正确方法。
我已经成功地将我的更改从分支合并回主干,使用,
现在我需要从主干重新创建我的开发分支。做这个的最好方式是什么?
背景
我们基本上有一个发布主干,所有开发都在分支中进行,直到发布时间,所以过程是合并更改到主干,发布,重新设置分支做更多的更改,重复过程。
git - 当 git pull 导致冲突但 git pull --rebase 没有时,这是什么意思?
我正在从只有我有权访问的存储库中提取。据我所知,我只从一个存储库推送到它。有几次,我尝试推动它并得到这个:
一般来说,这只是意味着我必须做一个git pull
(尽管所有的更改都应该是可快速转发的)。当我做 agit pull
时,我会遇到冲突。如果我做 a git pull --rebase
,它工作正常。我究竟做错了什么?
mercurial - 在 mercurial 中变基后摆脱悬空的变更集
我做了一个将另一个看似无关的存储库放入当前存储库。hg update --force <repo>
hg pull --update --force <other repo>
之后我合并了另一个 repo 的第一个变更集(以获得“正确”的重命名)。
从第二个变更集开始的另一个存储库的变基使第一个变更集(此处:修订版 5431)在存储库中悬空:
为了清理东西,我想摆脱修订版 5431。我该怎么做?
谢谢。
git - 当分支上的文件在主服务器上拆分为两个文件时合并更改
这基本上是主服务器上的大量 C 类被重构为两个较小的类 C1 和 C2 的结果。然后 C 成为 C2 的子类,并缩减为框架版本以实现向后兼容性。所以从那时起,master 包含了 C、C1 和 C2。在那个主提交上,git 说 C 被重命名为 C1。分支在此发生之前最后一次更新。(所有 C++ 代码,如果它有助于可视化所涉及的文件)
显然,当我尝试将分支变基到 master 上时,存在需要解决的冲突。
像往常一样,我使用了mergetool。
所以现在 mergetool 提出了以下内容:在本地,我有 C 的骨架版本。Base 和 Remote 对 C 有很多更改。
因为 C 的骨架版本存在于 Local 上,所以我得出结论,来自 Base 和 Remote 的更改实际上应该进入 C1,而不管 C。
我的问题是,我该怎么做?
git - git:关于 svn dcommit 合并/变基的正确方法
我有以下情况(主要是因为我一开始并没有真正考虑清楚 - 或者更确切地说,我认为我这样做的方式应该不是问题,但现在我被绊倒了):
其中A
和git-svn
处于相同状态(完全相同的文件和文件内容),但它们在历史上没有任何共同点。
而且我要:
或者至少,当我执行 svn dcommit 时,我只想得到提交B1
,Bn
而不是别的。
我不确定 dcommit 是如何工作的。所以如果我会得到这样的东西:
dcommit 会以我想要的方式运行吗?因为如果是这样,那将很容易获得(合并A
确实git-svn
可以正常工作,因为它们在内容方面是相同的)。
还是我应该做某种变基?但我不想改变A
基础git-svn
,只是B1
为了Bn
.