问题标签 [git-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 回答
621 浏览

git - 仅在个人分支上重新调整推送的提交

我使用多台机器进行开发,所以想要一种“自我协作”的方式。因此,远程存储库上的个人分支是有意义的。显然,对于这个分支,我会推/拉很多(即每次我在特定机器上开始/完成编码会话时)。我也喜欢在本地 rebase 以压缩/整理我的一些提交。我了解您不应该对已推送到远程存储库的提交进行变基。但是,如果它们仅存在于我的私有分支中(没有其他人触及此分支),那么我对服务器上也存在的提交进行 rebase 是否有任何问题?

0 投票
2 回答
1222 浏览

git - 大重构后 git rebase

我有 2 个分支,master 和 featureA。在 featureA 分支中,我在 CoolFile.m 中编写了一堆新代码。该功能尚未完成,因此此代码尚未准备好合并到 master 中。CoolFile 过去写得非常糟糕,所以在开发分支中我对其进行了一系列更改(主要是重新排序方法、添加注释和删除空格)。

现在我想从 master 中 rebase featureA,这样我就可以从清理过的代码中受益。问题在于,由于所有方法都已移动,rebase 正试图将所有新代码放在错误的位置。解决此问题的最佳方法是什么?我应该等到功能完成后再重构吗?

0 投票
1 回答
986 浏览

git - 分支从另一个上游变基后分歧

我已经分叉了一个项目。我还添加了指向原始存储库的句柄“上游”,以及指向分叉存储库的源点。几天后,我尝试从上游获取内容并重新设置它。变基后,它显示分支发散消息。我使用的命令是:

在什么情况下会发生这种情况,或者我在这里做错了什么?

ps 我在执行这些命令时在本地主分支上。由于我没有进行任何更改/提交,我想我可以使用 pull 命令。

0 投票
2 回答
8370 浏览

git - 如何避免 git rebase 杀死合并提交?

鉴于以下git历史:

我想 rebase 我的本地master分支origin/master,但我想保留合并提交G。当我尝试简单地做一段git rebase origin/master时间时,master它被压缩D..EG并使用 的提交消息提交E,因此合并的历史记录丢失了。是否有某种方法可以在保留此合并的同时仍获得变基?为了清楚起见,我的预期结果是:

0 投票
5 回答
52993 浏览

git - 上一次 git 合并后的 git rebase

我有以下情况:

  • clone从主存储库(X)创建了一个(Y),因为有很多人在 Y 上工作,我们没有做任何事情rebase,只做merges。当我们想要将(push) Y 传递到 X 时,我们想做 arebase以使事情变得干净整洁

问题是,当我们这样做时,rebase我们被要求做我们在前面的merge步骤中已经做过的所有合并。除了意味着实际重新进行合并的解决方案之外,是否有解决方案?

我希望它非常简单,因为我们已经解决了冲突的合并。

0 投票
3 回答
19988 浏览

git - `git fetch` 然后 `git rebase` 和 `git pull --rebase` 有什么区别?

在阅读该git pull页面时,它给出了以下严厉警告git pull --rebase

这是一种潜在的危险操作模式。它改写了历史,当您已经发布了该历史时,这并不是一个好兆头。除非您仔细阅读 git-rebase(1),否则不要使用此选项。

git rebase页面中,它提供了很多描述,但没有此类警告。

另外,我看到有人说

是相同的

而其他人则说它们略有不同。

真相是什么?

0 投票
4 回答
262 浏览

git - Git:我忘记对生成的代码进行初始提交;这是rebase的工作吗?

我组装了一个小型 Rails 3 应用程序来演示如何将它与我正在开发的库一起使用。运行后,rails new我对 Gemfile、配置和一些类进行了一些更改。然后我致力于 git。

我应该做的是提交最初生成的结构,然后提交我的更改,以便我可以很好地了解这个库的最小设置。

在我完成所有重新设置这一切的步骤之前(可能像 30 分钟,但可能会导致错误),我想知道:是否有可能做另一个rails new,提交,然后将现有的提交重新设置为基础,产生一个只提交我之前所做的更改(即减去rails new生成的结构)?

如果我了解 git 如何正常工作,这似乎是可行的,但我确定我不知道如何使用 git 的命令。

0 投票
1 回答
519 浏览

git - Git 功能分支工作流程

我正在尝试为一个项目做出贡献,我想在我的工作上使用 git-flow 工作流(?)。说,我已经签出develop了远程存储库(github)的分支,并且我已经设置了 2 个功能分支(T 代表翻译,U 代表更新):

现在,对于每个分支,都会向存储库维护者发出拉取请求upstream,他接受所有分支并将它们合并到upstream/develop分支中。

什么是正确的程序,所以我最终得到:

有些东西告诉我,这git rebase就是我所需要的。(请注意我在 Windows 上)。

0 投票
1 回答
3447 浏览

windows - 如何在 Windows GUI 中做 rebase --interactive

我有一个同事喜欢 Windows 的 git GUI 界面;我想让他以交互方式重新定位,以便他可以压缩提交。

我已经尝试使用Tools->Add添加git rebase --interactive,但是当他尝试它时这只是挂起。客户端可以处理交互式变基吗?是否有另一个适用于 Windows 的 GUI 客户端可以?或者也许还有另一种方法来压缩客户端中的提交?

0 投票
5 回答
1158 浏览

git - Emacs 使用 Git-Rebase 将缓冲区恢复到奇怪的先前状态

我在 OS X 上使用 Emacs (23.3.1)。我从终端发出 git 命令,而不使用 Emacs 的任何 VC 功能。我将 Emacs 设置为在文件被修改时刷新,这是由我的 .emacs 文件的这些行启用的:

这一直按我的预期工作;如果我拉动,我的 Emacs 缓冲区会随着合并或冲突而更新,就好像我已经退出缓冲区并重新加载每个缓冲区一样。

最近我开始变基(调用 git-fetch 然后调用 git-rebase)而不是简单地拉动(使用 git-pull),我不知道问题是否真的与 git-rebase 有关,但我当然没有在那之前注意问题,现在就做。

所以这就是问题所在:我更新一个文件,使用 提交更改git commit -am "...",运行git fetch origin,然后运行git rebase origin/master(有时以交互模式将提交压缩在一起)。现在我已经提取了远程更新,我再去编辑文件,发现它看起来好像我已经丢失了我最近的所有更改。第一次发生时,我非常生气并诅咒变基算法以某种方式丢失了我的更改,直到我意识到文件完全完好无损,只是 Emacs 以某种方式恢复到我更改之前的文件版本'刚刚承诺。我总是可以通过关闭缓冲区并再次加载文件来解决问题,但每次这样做都很痛苦。

有谁知道问题是什么?