如何在rebase过程中快速标记有冲突的解决方案?

noi*_*isy 5 git git-rebase

这是我的一部分git status

# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#       deleted by us:      ../../src/generic/asdfgsdfgsfg.java
#       deleted by us:      ../../src/generic/bsdfgsdf.java                                                                                                                                                             
#       deleted by us:      ../../src/generic/cdghdfgh.java                                                                                                                                                              
#       deleted by us:      ../../src/generic/dghkghjk.java                                                                                                                                                           
#       deleted by us:      ../../src/generic/eghkghjk.java                                                                                                                                                       
#       deleted by us:      ../../src/generic/fsdfgsdfg.java                                                                                                                                                    
#       deleted by us:      ../../src/generic/gsdfgsd.java                                                                                                                                                        
#       deleted by us:      ../../src/generic/hdsfgsdfg.java                                                                                                                                                    
#       deleted by us:      ../../src/generic/isdgsdfg.java                                                                                                                                                     
#       deleted by us:      ../../src/generic/jdsfgsd.java                                                                                                                                                    
#       deleted by us:      ../../src/generic/ksdf.java                                                                                                                                                       
#       deleted by us:      ../../src/generic/lnsfgnsg.java                                                                                                                                                             
#                   
Run Code Online (Sandbox Code Playgroud)

我怎样才能轻松快速地处理git rm每个文件,知道文件夹中../../src/generic/有很多其他文件,我不想删除它们。

Cas*_*bel 4

我不久前从 git wiki 上找到了这对非常棒的别名(目前它与 kernel.org 一起下架了):

edit-unmerged = \
    "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; vim `
add-unmerged = \
    "!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; git add `f`"
Run Code Online (Sandbox Code Playgroud)

这可以根据 重新实现git status --porcelain,在编写提示时不存在,这将使重写编辑取消合并变得更容易,以避免包括删除冲突,因为通常您想要删除/保留它们,而不是编辑它们。但添加-取消合并完全适合您的用例!

像这样的东西(未经测试):

add-unmerged = \
    "!f() { git status --porcelain | grep '^[ADU][ADU]' | cut -d" " -f2 }; git add `f`"
edit-unmerged = \
    "!f() { git status --porcelain | grep '^UU' | cut -d" " -f2 }; git add `f`"
Run Code Online (Sandbox Code Playgroud)

调整第二个模式,直到它只包含您想要编辑的冲突类型。你肯定想要UU;您可能还需要 AU/UA,甚至可能需要 AA。A 表示已添加,D 表示已删除,U 表示未合并(已修改)。