2013-03-21 287 views
6

我有一個App.Local.config文件,每個開發人員都有自己的設置。我不希望在GIT repo中檢查此版本的版本,因爲每次它都會被其他開發人員的更改覆蓋。GIT:切換分支時如何保留忽略的文件?

因此,我從回購庫中刪除了該文件並將其添加到忽略文件中。但是現在,當開發人員切換分支時,App.Local.config將從其本地文件系統中刪除。

最終什麼,我想的是:

  1. 新開發的克隆回購協議,獲取App.Local.config的起始版本
  2. 開發進行更改App.Local.config。 Git將忽略更改並且不會登臺/登錄
  3. dev開關分支,對App.Local.config的更改不會丟失並且不會刪除文件。

我該怎麼做?

謝謝。

+0

如果文件被正確忽略,則在切換分支時不應觸摸它。當你輸入'git status'時會出現嗎? – 2013-03-21 16:28:19

+2

它只會在每個人的第一次更新時被刪除。一旦每個人的回購是最新的,該文件將保持不被刪除。 – TheBuzzSaw 2013-03-21 16:31:35

回答

6

可能發生的情況是您從工作區中刪除了該文件,但沒有從索引中刪除該文件。如果你這樣做,git認爲刪除這個文件是一個變化,它會從那時開始刪除它。

要走的路是從指數與

git rm --cached App.Local.config 

刪除不想要跟蹤的文件了,然後將該文件添加到.gitignore 這樣做,你就沒有更多的問題文件

+1

@mswanson如果文件被忽略,您可以根據需要切換分支 - 它不會被觸摸。所以你只有一個問題:爲這個文件提供模板。但你應該從混帳中去掉。 – madhead 2013-03-21 17:57:01

+0

如果文件被忽略並且超出索引,則文件的更改不會丟失,並且文件不會被刪除 – iberbeu 2013-03-21 17:57:15

+1

@iberbeu我有同樣的問題,但文件從未在索引中。我用--orphan標誌啓動了一個新分支,然後git rm - 緩存所有內容,忽略.gitignore中的某些文件並提交。這些文件在我切換分支時消失了,我不知道如何避免這種情況! – splinter123 2016-05-13 10:22:56

1

似乎這個文件是索引一次。所以其刪除一個變化。您可以將其添加到.gitignore.git/info/exclude,然後在每臺開發人員計算機上重新創建它。

0

你不應該只在您使用git rm --cached App.Local.config工作的分支,而且在分支要切換到,否則你將失去你的App.Local.config當你切換到你的工作,如果你只在該分支使用git rm --cached App.Local.config分支。

相關問題