2013-01-16 107 views
25

有趣和有用的答案How to setup a git driver to ignore a folder on merge是,它並沒有回答這仍然難倒我了原來的問題。如何使混帳忽略一個目錄,而合併

與連接到上面的問題,我都用同一套目錄的兩個分支和合併到彼此,我需要的git完全忽略一個目錄。

我試着用我自己的合併驅動程序,如How do I tell git to always select my local version for conflicted merges on a specific file?中所述,但這種方法的問題在於,只有在這兩個分支中存在實際衝突文件時纔會調用此驅動程序。只要文件的更改只在一個分支上,git就會合並它們而不調用我的合併驅動程序。

這導致目錄,我不希望在文件中的更改。任何想法如何讓git忽略該目錄中的每個文件 - 無論它是否被觸及?

+0

我一直在尋找到最近的Git,這似乎是可能會阻止我們使用它的問題之一,你不能有選擇地合併事物。 – user606723

+0

'git filter-branch'命令可能就是你想要的。它允許您在合併過濾內容時進行合併。 http://git-scm.com/docs/git-filter-branch –

+0

感謝FPR的答案,但我不明白我怎麼能在這種特殊情況下適用'過濾branch'沒有做很多工作,爲每合併。 –

回答

37

我不實際使用Git的,但我認爲這會爲你的情況下工作:

使用類似此處指定'S:https://gist.github.com/564416

git checkout master  
git merge --no-commit --no-ff development 
git reset -- /path/to/folder # revert updates from path 
git commit 

同樣,我不使用git,根據我對TryGit的經驗,我只是推遲了我的想法。

  1. 結賬主
  2. 合併,但不承諾,不快速前進。現在
  3. 合併都在上演,所以重置整個目錄樹
  4. 提交
+0

@ SebastianThiebes這是正確的答案。投票,接受它。 – jthill

+1

我想你也應該給這個答案[如何建立一個git司機忽略合併文件夾(http://stackoverflow.com/questions/3111515/how-to-setup-a-git-driver-to -ignore-一個文件夾上合併)。也許還可以考慮不顯示結帳步驟?這是無關緊要的,我認爲這有損於解決方案的簡單性。 – jthill

+1

如果我的編輯不走,復位應該是'git的復位 - 路徑/到/ folder' – jthill