Git使用冲突表示法应用存储

时间:2012-02-21 18:35:46

标签: git emacs git-stash

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

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

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

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

1 个答案:

答案 0 :(得分:3)

在git中,stash堆栈实际上是一个分支。这意味着您可以对正常分支执行任何操作,您也可以对您的存储执行操作:这包括与其合并!

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

如果您只想查看差异,可以git show以相同的方式git diff存储内容(或meld <(git show stash@{0}:path/to/file) <(git show HEAD:path/to/file)或任何其他git命令)。

示例:{{1}}