我有一组stash@{4}我想要应用的更改,但是以这样的方式将更改合并到工作副本(或者新的提交)中,以便可以通过预处理器符号选择任一版本.
(这是GNU diff和diff3程序的一个特性:请参阅--ifdef选项.)
比如像一个大块头
@@ -123,7 +123,7 @@
 a
 b
 c
-foo
+bar
 d
 e
 f
Run Code Online (Sandbox Code Playgroud)
实际上应用于工作文件
a
b
c
#ifdef SYM
bar
#else
foo
#endif
d
e
f
Run Code Online (Sandbox Code Playgroud)
如果SYM已定义,则文本对应于修补版本,而如果未定义,则文本将扩展为基本版本.
也许,这是可以做到的git merge,不知何故,告诉git使用diff3 --ifdef=SYM的合并?
显而易见的事情让我震惊:patch也有一个--ifdef/-D选择。
git stash show -p stash@{4} | patch -p1 -D SYMBOL
Run Code Online (Sandbox Code Playgroud)
完毕!
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           314 次  |  
        
|   最近记录:  |