2011-10-06 87 views
4

这是我git status如何在rebase期间快速标记解决冲突?

# 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/还有很多其他的文件,我不想去掉。

回答

4

有这真是太棒了对别名我从git的维基拿起了一段时间后(这是目前打倒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 = \ 
    "!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为未合并(修改)。