Git 提供了一個選項.gitattributes,用于使用合并策略忽略某些檔案(例如:生成的檔案)的合并沖突:
http://git-scm.com/book/en/v2/Customizing-Git-Git-Attributes#Merge-Strategies
您還可以使用 Git 屬性告訴 Git 對專案中的特定檔案使用不同的合并策略。一個非常有用的選項是告訴 Git 在特定檔案發生沖突時不要嘗試合并它們,而是使用您的合并而不是其他人的合并。
您可以像這樣設定一個屬性:
database.xml merge=ours然后定義一個虛擬的我們的合并策略:
$ git config --global merge.ours.driver true
如您所見,這需要git config在我的本地機器上使用特殊配置。
我正在嘗試將其配置為在 GitHub 上作業(即,在我無法訪問的地方git config --global)。
有沒有辦法為 GitHub 上的拉取請求啟用合并策略?
編輯
根據如何將 git 配置存盤為存盤庫的一部分?除了 .git 配置,沒有默認位置.git/config。因此,不可能將 afaik 本地配置提交到 git 存盤庫。
uj5u.com熱心網友回復:
這在技術上是一個合并驅動程式,而不是一個合并策略;Git Book 中的措辭在這里不是很好。
簡短的回答只是“不”。無法直接在 GitHub 上執行此操作。在本地進行合并,然后推送合并,而不是使用拉取請求。
請注意,在您可能希望使用合并驅動程式的某些情況下,不使用合并驅動程式。特別是,請考慮以下設定:
I--J <-- br1 (HEAD)
/
...--G--H
\
K--L <-- br2
您運行git merge br2以將 commit 合并L到 commit 中J,使用 commitH作為合并基礎。假設有一個.gitattributes說檔案F應該與ours驅動程式合并,并且您已經定義了一個合適的ours驅動程式。1
現在,假設檔案?F在提交J比賽檔案?F的承諾H。但是提交中的檔案FL是不同的。為具體起見,假設此檔案名為server.conf,并且它hostip 1.2.3.4在 commitH和 commit 中表示J,但hostip 8.7.6.5在 commit 中L。
由于您server.conf driver=ours的.gitattributes檔案中有,您可能希望 Git在最終的合并提交中保留hostip 1.2.3.4from commitH和Lcommit M。但它不會:Git將從 commit中獲取F ( server.conf)的副本L。
(我通常建議避免使用合并驅動程式:它們不像您預期??的那樣作業。如果您發現自己需要一個,您可能真的需要重新設定檔案。)
1我們可以假設這在提交時就已到位并且始終保持不變,從而 可以忽略任何有關.gitattributes使用的技術擔憂。(在實踐中,我相信 Git 會盡可能使用作業樹。否則它會使用當前提交中的那個,在這種情況下。).gitattributesH .gitattributesJ
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/378018.html
上一篇:安裝terraformprovider時,出口超過帳戶限制
下一篇:獲取包含特定字串的最新提交
