问题标签 [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.

0 投票
2 回答
1886 浏览

mercurial - 不小心只重新设置了我的一个变更集

我有 3 个变更集,我想在最新版本的基础上进行重新调整。不幸的是,我只选择了其中一个进行重定位,因此进行了合并。有什么办法可以撤消变基或更改它,以便其他两个更改集也可以变基?

0 投票
1 回答
1021 浏览

git - Git:rebase失败后恢复分歧的存储库

我运行了一个git pull --rebase,并在使用git rebase --abort.

在尝试变基之前,git status告诉我:“您的分支比 'origin/master' 领先 20 次提交。” 现在我得到:“你的分支和 'origin/master' 已经分道扬镳,分别有 15 和 5 个不同的提交。”

我已经重置了最新的提交 ( git reset --hard c15...e30),但状态消息仍然相同。

如何将我的存储库恢复到我开始混乱之前的状态?当前状态和以前的状态有什么区别?

谢谢。

0 投票
2 回答
606 浏览

git - 如何保留要压缩到另一个提交的时间?

我在一个分支“开发”中工作,当准备好与 master 合并时,使用交互式 rebase 将我所有的小提交压缩到一个包含功能的提交中,然后将其应用在 master 之上。

效果很好,我唯一的问题是标记提交的时间是第一个小提交。这是有道理的,因为这是唯一被“挑选”的提交,其余的被“压扁”。任何人都知道如何将集中提交标记为最后一个小提交的时间而不是第一个?可以通过“编辑”最早的提交并将后来的提交压缩到这个提交中来做到这一点(我大概可以编辑时间属性)但是有更好的方法吗?

0 投票
6 回答
105488 浏览

git - Git rebase:冲突不断阻碍进度

我有一个 git 分支(称为 v4),它是昨天由 master 制作的。对 master 进行了一些更改,我想进入 v4。所以,在 v4 中,我尝试从 master 做一个 rebase,但一个文件总是把事情搞砸:一个包含版本号的单行文本文件。该文件是app/views/common/version.txt,在变基之前包含以下文本:

这就是我正在做的事情:

现在version.txt看起来像这样:

所以,我整理了一下,现在看起来是这样的:

然后我尝试继续:起初我尝试提交:

那里没有运气。所以,我试图添加文件:

没有反应。没有消息就是好消息,我猜。所以,我尝试继续:

正是在这一点上,在绕着这个转圈之后,我把头从桌子上撞了下来。

这里发生了什么?我究竟做错了什么?谁能让我直截了当?

编辑 - 为 unutbu

我按照您的建议更改了文件并得到相同的错误:

0 投票
10 回答
19624 浏览

git - 如何解决 git-svn 索引不匹配?

当我做了一个 git svn rebase 时,它​​停在了一个地方说:

Index mismatch: SHA key of a tree != SHA key of another tree.(我知道这些 SHA 键对应于一棵树,而不是来自 git show 的上述两个 sha 键的提交。)

我在 git 的内部工作方面不是很有经验,那么是否有一系列步骤可以用来剖析这些问题并可能解决它们?

0 投票
3 回答
16434 浏览

git - 有人将变基或重置推送到已发布的分支后,我如何恢复/重新同步?

我们都听说过永远不应该对已发布的作品进行变基,这很危险,等等。但是,我还没有看到任何有关如何处理变基发布的情况的食谱

现在,请注意,只有当存储库仅由已知(最好是小)的一群人克隆时,这才是真正可行的,所以无论谁推送 rebase 或 reset 都可以通知其他人他们下次需要注意拿来(!)。

如果您没有本地提交foo并且它被重新定位,我见过的一个明显的解决方案将起作用:

foo根据远程存储库,这将简单地丢弃本地状态以支持其历史记录。

但是,如果一个人在该分支上进行了大量的本地更改,那么如何处理这种情况呢?

0 投票
1 回答
9104 浏览

git - 将提交从一个分支移动到另一个分支

我已经在我的 git 存储库的 master 分支上提交了一堆更改,并将其推送到上游(尽管我是唯一一个解决这些问题的人。)我想要做的是取消最后几个提交,滚动回到主提交之前,将提交重新应用到开发分支,然后合并回主。

这是我的存储库现在的样子:

这就是我想要的样子:

我能得到一些帮助吗?我认为这是一个 rebase 的工作,但我不太确定如何实现它。

0 投票
2 回答
2257 浏览

mercurial - 如果在不同的分支上,为什么我不能基于源变更集的祖先?

我想知道为什么以下模式是不可能的。

创建了一个本地特性分支(minor_feature - 不打算与世界共享)后,我想将它的工作重新定位到一个众所周知的分支(稳定)的顶端。但是,我发现,在从它分支后稳定没有进展的情况下,rebase 没有发现任何要重新设置的内容。

我很欣赏这违反了规则,即 rebase 的目的地不能是源的祖先,但无法弄清楚为什么在所示的简单情况下应该禁止这样做。我也明白,除了分支之外,拓扑在变基期间实际上不会改变。但是考虑到分支名称对拓扑结构确实很重要,这似乎只是一种特殊情况,因为稳定版没有对其进行进一步的修订。在 stable 的尖端进行一个额外的修改(比如从其他地方拉进来)我当然可以执行变基

——谢谢克里斯·戈尔曼

0 投票
3 回答
2978 浏览

git - 如何在 `git merge` 之后使用 `git rebase -i` 而不会搞砸?

我有以下情况:

  1. 我对本地存储库进行了一些提交,然后将另一个分支(约 150 次提交)大量合并到主存储库中。里面有很多矛盾。

  2. 现在,我想将我在合并之前所做的提交移动到推送之前。

通常,我会使用rebase -i它。

不幸的是,默认行为是打破我所做的一次合并提交,实际上添加了 150 多个提交以掌握到单独的提交中(我理解这就像我要使用 rebase 而不是合并开始)——这是不好的行为对我来说有几个原因。

我很高兴发现-prebase 的标志,它保留了合并。不幸的是,这实际上再次应用了相同的合并,并忘记了我在解决冲突方面的辛勤工作。再次——不良行为!

有我想要的解决方案吗?使用rebase -i合并后重新排序或编辑特定提交,而不必重复我的合并后操作?

谢谢!

0 投票
3 回答
6242 浏览

git - git - 在没有变基的情况下设置提交的父级

我曾经git-svn创建一个 SVN 存储库的 git 镜像。SVN 内部的结构有点不标准,所以 git 创建了一个与该分支没有共同提交的master分支。

我知道提交A是基于提交的E,我非常肯定我已经解决了导致 git 无法识别该事实的问题(使用filter-branch)。我想要做的是重新附加topicmaster分支,设置E为父级A

git-rebase似乎对我不起作用,因为提交的差异A列出了已存在的大量文件的创建master,从而导致大量冲突。
根据我对 git 的理解,设置E为父级A应该足以解决所有问题。
这可能吗?如果是,我该怎么做?