簡體   English   中英

接受 git 中的所有合並沖突

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM