1

听起来可能很奇怪,但有时在一些快速而肮脏的黑客攻击中,我希望更改文件以反映先前版本和隐藏后的更改git stash apply

++<<<<<<< Updated upstream
 +stuff
++=======
+ more stuff
++>>>>>>> Stashed changes

Git 使用此表示法来手动解决冲突;我不一定要寻找,我想要的只是一种在我的编辑器中拥有两个版本而不使用任何外部合并工具的方法。

也许使用编辑器的功能而不是 Git 本身可以更好地获得这一点,在这种情况下,我使用的是 Emacs。

4

1 回答 1

3

在 git 中,存储堆栈实际上是一个分支。这意味着你可以对一个普通的分支做任何事情,你也可以对你的 stash 做任何事情:这包括与它合并!

因此,如果您想要任何特定的特定于合并的行为,只需将其与stash@{0}而不是合并git stash apply

如果您只想查看差异,您可以git show以相同的方式存储内容(或git diff,或任何其他 git 命令)。

例子:meld <(git show stash@{0}:path/to/file) <(git show HEAD:path/to/file)

于 2012-02-21T19:07:58.390 回答