如何快速标记在rebase期间有冲突的解决方案?

时间:2011-10-06 16:34:16

标签: 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                                                                                                                                                             
#                   

如何知道文件夹git rm中有很多其他文件,我不想轻易快速地在每个文件上创建../../src/generic/

1 个答案:

答案 0 :(得分: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`"

这可以用git status --porcelain重新实现,这在写入提示时不存在,这样可以更容易地重写编辑 - 未合并以避免包含删除冲突,因为通常你想要删除/保留那些,而不是编辑它们。但add-unmerged完全适合您的用例!

像这样(未经测试):

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`"

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