2012-12-11 93 views
1

我上有一點的罕見表現的東西一個項目:混帳藏匿可以忽略修改一個跟蹤文件

一個源代碼文件是包含嚴重的代碼的文件,但它可以編輯自己以包含一些配置。這是否是好的設計是一個不同的討論,但爲了能夠測試我的項目,這個文件需要處於修改狀態。

在我做任何事情之前,我通常會對我的貢獻前後的情況進行A-B比較。我用git stash來切換基地和我骯髒的工作副本。問題是,當使用git stash時,它也會恢復我的配置。

我目前的解決方法很麻煩:我做了git add path/to/settingsfile,然後git stash --keep-index,但我寧可不喜歡這種解決方法。有沒有更好的解決方案讓git忽略對這個文件的所有修改,除非我另有指定?

+1

你真的應該修復自行編輯獸,否則你是不會贏得這場戰鬥。 – mvp

+1

自動生成的內容應保存在單獨的未跟蹤文件中。對此進行排序將立即解決您的問題,並使一切變得更加清潔。 – poke

+0

夥計們,我完全同意。這兩個+1,但請注意我之所以提到這是一個不同的討論,是因爲這不應該是我的修補程序,爲了修復它,它應該通過通常的官僚作風。最終,如果我的老闆/隊友想要這樣或者不在乎我的問題,我正在尋找替代方案。 –

回答

1

請參閱 「Preserve git --assume-unchanged files between branch checkouts

git update-index --skip-worktree -- path 

那會不會是從git stash恢復。


原來的答覆

從 「temporarily ignoring files」:

git update-index --assume-unchanged <file> 

這將使忽略更改該特定文件。
如果您想恢復代碼更改儘管在同一文件中保持配置更改,這將無濟於事。

和Git藏匿仍然會恢復它:How to prevent git stash dropping changes to files with the "assume unchanged" bit?

+0

當看着'git status'的輸出時,它看起來很有前途,但似乎'git stash'並不尊重它。它仍然將文件恢復到BASE。 –

+0

@PelletenCate yeap,我剛剛閱讀http://stackoverflow.com/questions/5962456/how-to-prevent-git-stash-dropping-changes-to-files-with-the-assume-unchanged-b我已更新相應的答案。 – VonC

+1

@PelletenCate測試:http://stackoverflow.com/a/9816844/6309'git update-index --skip-worktree -/path/to/file':會'git stash'離開它一個呢? – VonC