[英]Accept all merge conflicts in git
我正在嘗試進行合並,但存在一堆沖突。 這是所有生成的文件,所以我想要做的基本上是說“忽略所有合並沖突,並從我自己的倉庫中檢查所有內容”。
我試過了
git checkout . --ours
git add -A
git com -a
但它給了我一個錯誤,因為“未合並的路徑”存儲桶中仍有文件。 我該如何處理?
謝謝!
Git 命令對隱藏沖突非常謹慎——您幾乎必須明確簽入沖突文件以使其知道它已修復。 git add
沒有-f
樣式選項來讓它知道你是認真的,這似乎很奇怪,但這是我擁有的一個別名,它會有所幫助:
add-unmerged = \
"!f() { git ls-files --unmerged | cut -f2 | sort -u ; }; git add `f`"
額外提示:如果您將“git add”更改為 $EDITOR,您現在就擁有了edit-unmerged
,用於編輯所有沖突的文件!
使用自定義合並驅動程序:
您可以在位於正確目錄中的.gitattributes
聲明該驅動程序(具有您不想處理其合並的生成文件的那個)
* merge=keepMine
(您可以指定更精確的模式來隔離與該自定義合並相關的確切文件)
使用配置:
[merge "keepMine"]
name = always keep mine during merge
driver = keepMine.sh %O %A %B
有關完整示例,請參閱“ 如何告訴 git 始終為特定文件上的沖突合並選擇我的本地版本? ”。
對於這種情況,使用正則表達式將有助於分期。
沖突解決后,要添加未合並路徑中的文件,您可以使用文件的公共標識符。
例如,如果需要提交的文本文件和 xml 文件很少,文件的擴展名為 .txt 和 .xml,請使用以下命令暫存文件。
git add *.txt *.xml
注意:這將添加存儲庫中的所有 .txt 和 .xml 文件,即使是那些未跟蹤的文件。
沒有本地 git 支持,但您可以嘗試以下 hack:
git status | grep "both modified:" | awk '{print $NF}' | xargs git add
為安全起見,請先運行不帶 xargs 的命令以檢查要添加的文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.