在哈希 A 和哈希 B 之间的 git 中进行了一些更改(最新的分支在 Z 中 - 之后有数千次提交)。我想让 HEAD(我的本地)指向哈希 A,并在我的工作目录中包含在 A 和 B 之间进行的所有更改。
为什么?因为 git diff 不方便,我宁愿使用我的 IDE (IntelliJ IDEA) 拥有的 diff 工具。但是为此,我需要让 IDE 相信我已经更改了文件——因此是请求。
我实际上找到了一种方法:
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>
相反 - 但我还没有测试它。
你可以:
git clone
您的本地存储库并将其重置为hashB
(请参阅“ Git 克隆远程存储库的特定版本”)git reset hashA
在您的本地仓库中HEAD
.