Git 将存储转换为由#ifdef SYM分隔的工作更改

Git 将存储转换为由#ifdef SYM分隔的工作更改,git,Git,我想应用stash@{4}中的一组更改,但更改会合并到工作副本(或新提交)中,这样预处理器符号就可以选择任何一个版本 (这是GNU diff和diff3程序的一项功能:请参阅--ifdef选项。) 比如说像你这样的大块头 @@ -123,7 +123,7 @@ a b c -foo +bar d e f 实际应用于工作文件,如下所示: a b c #ifdef SYM bar #else foo #endif d e f 如果定义了SYM,则文本对应于打补丁的版本,而如果未定义,

我想应用
stash@{4}
中的一组更改,但更改会合并到工作副本(或新提交)中,这样预处理器符号就可以选择任何一个版本

(这是GNU diff和diff3程序的一项功能:请参阅
--ifdef
选项。)

比如说像你这样的大块头

@@ -123,7 +123,7 @@
 a
 b
 c
-foo
+bar
 d
 e
 f
实际应用于工作文件,如下所示:

a
b
c
#ifdef SYM
bar
#else
foo
#endif
d
e
f
如果定义了
SYM
,则文本对应于打补丁的版本,而如果未定义,则文本扩展到基本版本


也许这可以通过
git merge
来实现,不知何故告诉
git
使用
diff3--ifdef=SYM
进行合并?

我突然意识到:
patch
也有一个
--ifdef/-D
选项

git stash show -p stash@{4} | patch -p1 -D SYMBOL
完成了