在哈希A和哈希B之间的git中进行了一些更改(最新的分支在Z中 - 后来成千上万次提交)。我想让HEAD(我的本地人)指向哈希A,并在我的工作目录中拥有A和B之间所做的所有更改。
为什么呢?因为git diff很不方便,我宁愿使用我的IDE(IntelliJ IDEA)的diff工具。但为此我需要说服IDE我已经更改了文件 - 因此请求。
答案 0 :(得分: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>
而是 - 但我还没有测试它。
答案 1 :(得分:1)
你可以:
git clone
您当地的回购并将其重置为hashB
(请参阅“Git clone particular version of remote repository”)git reset hashA
HEAD
相比添加,丢失或修改的所有文件。