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

git - 如何在 git rebase 期间通过哈希识别冲突提交?

当我使用 遇到合并冲突时git rebase,如何根据提交来识别冲突的来源,而不仅仅是文件差异?

我已经知道如何(基本)使用git mergetoolor git addbefore git rebase --continue,但有时文件之间的差异还不够:我想查看提交日志和刚刚未能应用于工作树的提交的差异。

我读过其他问题,git log --merge如果我使用git merge. 当我遇到冲突并被告知时,我还是尝试了它fatal: --merge without MERGE_HEAD?

如何识别有问题的提交?

0 投票
5 回答
50490 浏览

git - 在 Git 中编辑根提交?

有一些方法可以从以后的提交中更改消息:

如何更改第一个提交(没有父级)的提交消息?

0 投票
4 回答
41753 浏览

git - 撤消 git pull --rebase

嘿,我是 git 新手,我需要撤消拉动,有人可以帮忙吗?!?所以我所做的是...

  1. git 提交
  2. 混帐藏匿
  3. git pull --rebase
  4. git stash 弹出

这造成了一堆冲突并且出了点问题。现在做 'git stash list' 表明我的藏匿处仍然存在。是否可以在执行 git commit 之后将我的 repo 恢复到原点。如此有效地,我的回购只包含我所做的更改,而服务器没有任何新内容?

0 投票
2 回答
23667 浏览

git - 如何推/拉 Git rebase

我想使用git rebase以便干净地合并主分支中的功能(在较少的提交中或至少在更改日志的顶部)。请注意,我是唯一一个在存储库上工作的人

在阅读了 Git 工作流和变基与合并问题之后,我发现git rebase这会非常好,就像 Micah 一样,我想重新git push基基更改只是因为我正在从不同的地方处理它们(例如:我的笔记本、我的家、某处的另一台 PC。 ..)

所以这里有两个解决方案(双向丑陋合并):

  1. 在其他机器上使用git push -f推送,然后拉取,但是如何在其他机器上干净地获取最新版本?
  2. 使用合并将主更改合并到功能分支,git push/pull,一旦成熟,做一个单一的变基(在一个或多个提交中干净地)

(2) 如下所示:

您认为哪种解决方案可行?到目前为止,我还没有尝试过其中任何一个(主要是因为害怕让我的日志更加混乱)。

0 投票
1 回答
843 浏览

git - 奇怪的 git 合并问题

这是 gitk 目前在我们的一个项目中的样子:

https://dl.dropbox.com/u/2582508/gitk.png

显然,据我们所知,这发生在使用远程分支完成单个“git merge”之后 - 我们不确定为什么或发生了什么。知道这里发生了什么吗?

更重要的是,修复它的最佳方法是什么?这些合并提交是空的,但是在执行“git rebase -i”时,合并提交通常似乎不会出现。

最重要的是,我不想让历史与其他克隆不兼容,即他们应该仍然能够拉/推/合并它。这甚至可能吗?

0 投票
3 回答
2321 浏览

git - 如何将提交从主干移动到 Git 中的分支?

我向 master 提交了一堆代码,然后意识到它们应该在一个分支中。

我看过关于变基、合并和重置主人的各种事情。但是,任何操纵尝试都没有产生像我正在尝试做的那样的历史。

我的尝试使我相信它需要某种组合rebase --onto并将reset --hard主人及时移回。但是我对 Git 分支的理解还有一些不足之处。这样做的一部分是学习如何使用它。

应该注意的是,我试图移动的所有更改都没有被推出。

当前的

期望的结果

0 投票
4 回答
223190 浏览

git - 合并 --squash 和 rebase 有什么区别?

我是 git 新手,我试图了解 squash 和 rebase 之间的区别。据我了解,您在进行变基时会执行壁球。

0 投票
1 回答
4319 浏览

git - git:如何在通过文件删除重新提交提交时不删除文件

我有一个分支,我想将其重新定位到我的主人的最新提交。问题是 master 上的一个干预提交是删除并忽略一组特定的文件(请参阅此问题)。

如果我只是做一个直接的变基,这些文件将再次被删除。无论如何,在git内部这样做,而不是手动复制所有文件,然后再将它们复制回来?

或者我应该做一些事情,比如在 master 上创建一个新分支,然后只合并来自旧分支的提交?

尝试ascii艺术:

(在做艺术时,我意识到我可以从 A 重新设置分支,然后在完成后合并,但我仍然想知道是否有办法“正确”地做到这一点)

更新警告任何尝试此操作的人。此处提出的解决方案很好,但是当您再次签出 master 时,将重新应用 B 提交,并且您会再次丢失所有文件:(

0 投票
1 回答
1016 浏览

svn - 如何将 git 与 svn 树重新同步?

背景

我正在向使用 subversion 的项目添加一些功能 - 我正在使用 git-svn 将其克隆到我的本地存储库, git-svn rebase 以保持官方主干中的最新更改并保持历史线性。

最近我忘记了自己,做了一些合并,这弄乱了我的变基——长话短说,我需要花一些时间来挑选樱桃,让历史再次线性化。在那之后 1 次 rebase 就好了,但现在试图让 git-svn rebase 显示从 2008 年开始的颠覆提交之间的冲突(大约 700 次提交),即使历史似乎是线性的。

问题

  1. 有没有办法用 svn trunk 重建/重新同步我的 git 存储库?
  2. 如果我在另一台计算机上克隆我的 git 存储库(没有 .git/svn 文件夹) - 是否可以使用 svn 对其进行 rebase,知道 repo url 和最后一个 rebase 修订版?
0 投票
3 回答
504 浏览

git - 从多个 git rebase 中恢复“旧提交”

我知道这个问题,但不确定如何将其映射到我目前的情况。(变基是可怕的,撤消变基是双重可怕的!)

我从我的主人的几个不同的功能分支开始:

我想将它们合并在一起,并在合并回到 master 顶部之前检查它们是否有效,所以我做了:

然后

这让我有了

然后我更正了一些没有正确编译的位,并将整个功能设置为可接受的状态:

我的问题是我的同事告诉我,我们还没有为 FeatureA 做好准备。

有什么方法可以让我保留我所有的工作,但也可以恢复到我可以将 FeatureC 重新定位到 Feature B 的情况?