2011-10-06 31 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爲未合併(修改)。