2012-09-04 122 views
3

是否有可能一直保留某個文件未合併?Git:保留特定文件未合併

我要的是:

如果有兩個分支(A)和(B),並且它們具有相同的文件。例如,

在分支(A)中的文件 「設置」 有以下幾點:

this is setup 
in a branch A 

在分支(B)的文件 「設置」 有以下幾點:

this is setup 
in a branch B 

這些分支沒有未提交的文件(對不同分支中相同文件的不同提交)。

GOAL將合併這些分支後保持這些文件不被觸及。

How to tell Git to always select my local versionPrevent merging a file from master with Git中的解決方案對此不起作用。因爲它們只在合併它們時發生衝突時才起作用。 (好吧,如果我們合併這兩個分支並且它只工作一次,會發生衝突,但是如果我們合併(A)到(B),然後(B)到(A),那麼文件變得相同兩個分支)

GIT是否有這種可能性?

+1

您在問如何解決問題,而不是如何解決問題。你可以退後一步,並解釋爲什麼你想要/需要這個?然後,我們可以提供更好的建議如何做事情。 – Ikke

+0

你是否期望文件有進一步的變化? – kan

+0

是的。我希望在這個特定的文件和其他文件中有進一步的變化,這些文件需要像往常一樣合併。 –

回答

4

不,git沒有簡單的方法來做到這一點,因爲git對待合併。

我可能是錯的,但似乎你想保持配置文件合併。是對的嗎?因爲有更好的/其他的方式來處理配置文件。

This頁面解釋了一些解決方案如何處理幾種情況。

摘要:

  • 如果你可以修改你的程序,讓別人忽略未跟蹤
  • 您的配置文件,如果您不能修改程序,不跟蹤配置文件本身,而是跟蹤模板。
+0

是的,你是對的。它是一個配置文件。我怎樣才能讓他們不同的主人和發展部門? –

+0

@EsenbekKydyruulu閱讀我發佈的鏈接。它包含一些替代品。 – Ikke

+0

謝謝!它有很棒的想法。我不認爲他們在我的情況下工作,但在我看來,我可以使用模板,而不是實際的配置文件,並以某種方式管理它。 –

1

如果你真的需要保留他們掌握和開發分支不同,我推薦第二個選項提到了Ikkeanswer和版本2值的文件(一個主,一個用於Dev分支),加一個模板文件。

具有多個值文件意味着它們不會在分支之間發生合併問題(每個用戶只修改與當前分支相關的值文件)。
模板文件是有幫助內容filter driver到結賬產生私人文件,它代表了實際的配置文件(用正確的語法,從模板文件和正確的價值觀,用正確的價值文件,after the current branch

filter driver

+0

這是非常有用的,但不幸的是在我的情況下不起作用。因爲我的應用程序運行在不同的分支上,並且配置文件不時更新。 'git checkout'只做了一次,但是它'拉動配置文件很多次。 –

+0

@EsenbekKydyruulu'git pull'會觸發結帳和過濾器觸發器。 – VonC

1

做出.gitignore文件所在的文件存在,只是把文件名中的目錄中!

然後運行表彰

的git RM -cached path_to_setup.file

因此,它會忽略文件中的所有像合併,拉,推的業務,...

更多infromation:https://help.github.com/articles/ignoring-files

+0

忽略該文件會使其無法跟蹤存儲庫。我需要卡車。 –

1

有點長篇大論,但使用--no-commit您最初的合併操作,然後檢查取出原始文件以確保它沒有被覆蓋,然後提交。

目前git郵件列表上還有一個「預合併鉤子」討論,這也可能會給你一些選擇。 git list

你也可以嘗試在看git的源代碼和沿線加入.gitdonotmerge文件(在同一目錄)作爲.gitignore(再使用所有現有的代碼;-)和更新合併stratgetgy選項,以便這種適度常見的麻煩得到修復。抓住你自己的開源癢的樂趣!

0

其中一個選項是git update-index --assume-unchanged [file]它將忽略登臺和提交時文件的更改,但會將其保留在存儲庫中。這是一個危險的命令,因爲您需要記住,假設要提交更改時,您已假定文件未更改。另外,我不完全確定這將如何與合併行爲。

相關問題