Git将散列A和B之间的更改转换为工作目录

Ran*_*ron 3 git diff

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

为什么?因为git diff很不方便,我宁愿使用我的IDE(IntelliJ IDEA)的diff工具.但为此我需要说服IDE我已经更改了文件 - 因此请求.

Ran*_*ron 5

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

git checkout <hash A>
git diff –patch <hash A> <hash B> > patch.patch
patch –p1 –N < patch.patch
Run Code Online (Sandbox Code Playgroud)

同事也告诉我,我可以使用

git checkout <hash A>
git merge --squash <hash B>
Run Code Online (Sandbox Code Playgroud)

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