3

在哈希 A 和哈希 B 之间的 git 中进行了一些更改(最新的分支在 Z 中 - 之后有数千次提交)。我想让 HEAD(我的本地)指向哈希 A,并在我的工作目录中包含在 A 和 B 之间进行的所有更改。

为什么?因为 git diff 不方便,我宁愿使用我的 IDE (IntelliJ IDEA) 拥有的 diff 工具。但是为此,我需要让 IDE 相信我已经更改了文件——因此是请求。

4

2 回答 2

5

我实际上找到了一种方法:

git checkout <hash A>
git diff –patch <hash A> <hash B> > patch.patch
patch –p1 –N < patch.patch

一位同事还告诉我,我可以使用

git checkout <hash A>
git merge --squash <hash B>

相反 - 但我还没有测试它。

于 2012-05-23T09:51:13.717 回答
1

你可以:

  • git clone您的本地存储库并将其重置为hashB(请参阅“ Git 克隆远程存储库的特定版本”)
  • git reset hashA在您的本地仓库中
  • 清空其内容并替换它:IDEA 中的 Git 插件将检测与当前HEAD.
于 2012-05-23T09:00:54.087 回答