问题标签 [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 投票
19 回答
1430284 浏览

git - 撤消 git rebase

有人知道如何轻松撤消 git rebase 吗?

想到的唯一方法是手动进行:

  • git checkout 两个分支的提交父级
  • 然后从那里创建一个临时分支
  • 手工挑选所有提交
  • 用手动创建的分支替换我重新设置的分支

在我目前的情况下,这将起作用,因为我可以轻松地发现来自两个分支的提交(一个是我的东西,另一个是我同事的东西)。

然而,我的方法给我的印象是次优且容易出错(假设我刚刚用我自己的 2 个分支重新设置了基础)。

有任何想法吗?

澄清:我说的是重放一堆提交的rebase。不止一个。

0 投票
2 回答
4503 浏览

git - 为什么 git svn dcommit 会丢失本地分支的合并提交历史?

我有一个使用git svn clone. 我创建了一个本地分支,进行了一些更改,然后切换回 master,git svn rebase如果一切顺利,我将分支合并回 master。然后树看起来像这样:

替代文字 http://img.skitch.com/20090108-cjguu3hcci9x2k17mcftamw8f1.jpg

有时,稍后当我git svn rebase再次进行一些远程更改时,它会丢失 a_branch 已合并到主线中的事实,并且树看起来像这样:

替代文字 http://img.skitch.com/20090108-kn3bn1qgi5ijw8ja5ijkd75pa3.jpg

这是为什么?我能阻止它吗?有没有一种简单的方法可以告诉分支已合并,或者我应该在完成后删除我的分支,这样我就不会忘记已合并和未合并的内容?

0 投票
8 回答
47788 浏览

git - 合并 Git 存储库的前两个提交?

假设您有一个包含三个提交A、BC的历史记录:

我想将两个提交AB合并为一个提交AB

我试过

这将打开我的编辑器,其中包含以下内容:

我把它改成

然后 Git 1.6.0.4 说:

有没有办法或者这是不可能的?

0 投票
2 回答
44529 浏览

git - git rebase 和 git push:非快进,为什么要使用?

我有一个分支,它应该可供其他贡献者使用,并且应该不断与主人保持同步。

不幸的是,每次我执行“git rebase”然后尝试推送时,都会导致“非快进”消息和推送中止。在这里推送的唯一方法是使用--force。这是否意味着如果我的分支公开并且其他人正在处理它,我应该使用“git merge”而不是变基?

0 投票
9 回答
178689 浏览

git - 压缩 Git 中的前两个提交?

你可以将git rebase --interactive <commit>任意数量的提交压缩成一个。

除非您想将提交压缩到初始提交中,否则这一切都很好。这似乎是不可能的。

有什么方法可以实现吗?


中度相关:

在一个相关的问题中,我设法提出了一种不同的方法来解决第一次提交的压缩需求,也就是说,使它成为第二次提交。

如果您有兴趣:git:如何将提交作为第一个插入,然后转移所有其他提交?

0 投票
15 回答
61796 浏览

git - 在 Git 的根提交之前插入一个提交?

我之前问过如何压缩 git 存储库中的前两个提交

虽然这些解决方案相当有趣,并且不像 git 中的其他一些东西那样令人费解,但如果您需要在项目开发过程中多次重复该过程,它们仍然有点伤脑筋。

所以,我宁愿只经历一次痛苦,然后就可以永远使用标准的交互式变基。

那么,我想要做的是有一个空的初始提交,该提交只是为了成为第一个而存在。没有代码,什么都没有。只是占用空间,因此它可以成为 rebase 的基础。

那么我的问题是,拥有一个现有的存储库,我该如何在第一个提交之前插入一个新的空提交,并将其他所有人向前推进?

0 投票
0 回答
536 浏览

version-control - 如何使用 Starteam vcmutility 自动执行选择性变基?

在 Borland Starteam 中,我想自动化一个非常简单的 rebase,它只 repins 文件(即忽略其他所有内容 - 假设使用向导完成)。

查看 StarTeam 帮助“VCMUtility 会话选项”,我想将我的 DefaultAction 设置为忽略所有内容——除了 source.modified 应该是 repin。我没有看到一种明显的方法来覆盖所有(因为这是列出所有组合的联合不是一个选项)。

有没有人有任何示例配置文件?或者有使用 StarTeam 执行此操作的经验?

0 投票
1 回答
476 浏览

dll - 变基 - 无法让 odbcint.dll 在其首选基址加载

.exe内置 Visual Studio的默认基地址是 0x00400000。

d3dx9_30.dllodbcint.dll(都存在于 中)的默认基地址%windir%\system32也是 0x00400000。因此,默认情况下,exe链接到这些 dll 中的任何一个的 s 都会发生运行时地址冲突。操作系统会自动将 重新定位dll到不同的基地址并根据需要修复指针,当我附加 VS 调试器时,我可以看到这种情况:重新定位的模块得到一个感叹号图标覆盖。

重新定位系统 DLL 是一个非常糟糕的主意,更不用说在用户系统上几乎不可能做到。所以我决定重新设置我exe的 s 以防止这种地址冲突,从而防止运行时重新设置基础。

如果我将客户端 EXE 更改为不同的基地址以将其移开d3dx9_30.dll,它可以正常工作:没有地址冲突、没有重定位、没有修复。

但是,如果我将我的服务器 EXE 更改为不同的基地址以将它们移开odbcint.dll,它就不起作用。

odbcint.dll在内存中是 0x17000 字节,并且首选基地址 0x00400000。我尝试将我的 EXE 设置为 0x00420000,然后设置为 0x00660000。仍然odbcint.dll在运行时重新定位。我使用 进行了分析depends.exe,这表明在odbcint.dll加载之前没有其他模块试图声明此地址。

有没有人有理论解释为什么我无法odbcint.dll在其首选地址加载?

Update: vadump 显示,当我进入 main() 时,位于 0x00400000-0x00470000 的内存被声明为“UNKNOWN_MAPPED”。我一直无法找到有关这到底意味着什么的更多信息。我假设某些系统 dll 在加载时保留了此内存;我的调试功能不够强大,无法发现是哪个、为什么或确切的时间。

0 投票
4 回答
280 浏览

git - 格式补丁工作得相当好,正在寻找更好的方法

我有两个不同的分支,以至于变基似乎不起作用——或者我不知道该怎么做。

我有一个“公共”分支,其中删除了一堆文件(使用过滤器分支)。尽管大多数提交在增量方面匹配,但提交 ID 都是不同的。我已经尝试了很多方法来将更改从我的开发分支拉到我的公共分支......我发现很难相信它可以做我想做的事——但我怀疑我只是不知道如何去做做。无论如何,这工作正常,但似乎是错误的。

欢迎任何提示或建议,其中可能包括不过滤分支出您不希望在公共分支上的文件(但是,您如何摆脱它们?)。

我的树或多或少看起来像这样:

t ≅ a, u ≅ c, v ≅ d, w ≅ e, x ≅ g。i,j,k 是我想迁移的新补丁。

0 投票
5 回答
20021 浏览

git - 如何一次重新设置多个分支(具有相同的基本提交)?

我的项目中有一个 master 分支,用于从其他人那里获取更改。从那以后,我通常有几个我目前正在研究的主题分支。

我的问题是:有没有办法让我将新的更改拉入我的主人,然后一次将我所有的主题分支重新定位到那个?

这是这种情况:

我想用一个命令来完成这个(H来自上游):

现在,我知道我可以通过将 topic1 和 topic2 重新定位到 master 来实现这一点,我什至可以编写一个脚本来自动执行此操作。但是如果我有几个其他分支,经常创建新分支并删除其他分支,并且我一直收到上游更改怎么办?

这个操作(几个变基),当手工完成时,既累人又容易出错。

有没有更简单的方法?