2012-06-20 24 views
3

我用git-svn克隆了一個遠程SVN倉庫。我已經以代碼編譯的方式修改了這個克隆的repo中的pom.xml文件。這個設置對我來說是專屬的。因此,我不想將這些更改推回遠程回購。如何永久禁止在git中提交文件的特定部分?

是否有辦法防止這種情況(部分)的文件被提交到回購的變化?我知道這個事實,我可以使用個人分支,但這意味着某些合併開銷。有其他方法嗎?

我看着這個questionone,但它們對於相當時間的變化。

更新:我也知道的的.gitignore可能性,但是這將意味着完全排除的文件。

+1

這是不可能忽略一個文件 – CharlesB

+0

只有部分也許你應該拆分XML文件成包含你的專屬位user_pom.xml?聽起來像你的團隊成員,如果有的話,會有同樣的問題。 或者,您可以跟蹤包含非獨佔數據的pom.default.xml文件,並讓git忽略您自定義的pom.xml文件。 – mlatu

回答

2

編輯:你問什麼是不可能的,我沒有看到「局部」的一部分。 我知道你可以只提交部分文件,但你不能忽略文件的某些部分。 您需要使用update-index技巧以避免在「狀態」中出現該問題,並且每次從遠程進行重新綁定/合併時都需要存儲該文件,然後取消修改並忽略修改並更新-指數。 我不知道你是否可以爲一系列git命令創建一個git別名,所以用一個命令你可以執行所有這3個命令來避免使用.gitignore文件,而不要推動它遠程回購太:Ignore the .gitignore file itself

在你的.gitignore

,你應該有

.gitignore 
path/to/pom.xml 

.gitignore文件以可在工作樹的根,或任何你想要的子目錄/需要

+2

他只想忽略部分文件 – Shahbaz

1

可能有一個可能與過濾器。但是這需要更多的探索。

起點:實現塗抹/清潔此過濾器:

git config --global filter.versionUpdate.smudge 'sed "s/<version>14.5.0<\/version>/<version>14.5.FEATURE-15<\/version>/"' 
git config --global filter.versionUpdate.clean 'sed "s/<version>FEATURE-15<\/version>/<version>14.5.0<\/version>/"' 

通過這種方式,進行比較時,由於應用過濾器的文件始終是相同的。

問題:仍然需要調查如何找回過濾的文件。這在工作目錄中並不明顯。

Smudge clean filter

相關問題