2017-08-15 36 views
0

我正在Visual Studio中使用TFS工作,並且我有3個分支。在我們的回購中,每個分支都有2個配置文件的解決方案。這些配置文件已經承諾並且需要保留承諾。但是,在我的機器上,我需要將配置文件更改爲指向正確的數據庫。Visual Studio Git - 不能忽略已提交的文件和開關分支

我已經試過git update-index --skip-worktree App.config但是當我去轉換分支我得到以下錯誤信息:

Output from visual studios

git rm --cached App.config 

而且它會創建.gitignore文件,當是提交App.config從我不想要的回購中刪除。

我的目標是忽略我對文件所做的更改,但將文件保留在在線git倉庫中。

+0

哪個分支在您的本地計算機上籤出?你在使用什麼樣的視覺工作室?另外,你使用像GitExtensions這樣的GUI嗎? – BikerDude

+0

他們都已經簽出。 VS 2017允許我通過下拉菜單在它們之間切換,並自動更新本地計算機上的文件。我有TortoiseGit作爲GUI,但我現在只使用VS – DevEng

+0

哦,真棒。所以,就像澄清一樣,您從下拉列表中選擇的文件是唯一已經簽出的文件,其餘的文件存在本地但尚未簽出。 您對這些分支所做的任何更改都不會自動在線推送。 – BikerDude

回答

0

git update-index --skip-worktree只隱藏在索引中顯示的更改,但不會使更改消失。如果您正在切換分支git需要能夠更新您的配置文件,但您的本地更改阻止它這樣做(不管文件是否隱藏索引)。

這是我一直在使用最近的工作流:

  1. 建立一個新分支的本地測試只提交。我會叫它test。在那裏提交您的配置更改。
  2. 照常在當地的分店工作。我會稱之爲work。隨時做出小改動(無論如何,這是一個很好的做法)。
  3. 當您需要使用更新後的配置文件運行測試時,請簽出test並在work之上重新綁定它。 (如果你正在做這個有很多,你可以設置test跟蹤work節省一些按鍵。)
  4. 一旦test是對work頂部,您可以git checkout test使用修改後的configs,或git checkout work恢復編碼。
  5. 準備好發佈更改時,rebase --interactive將所有的臨時提交壓縮成一個(或多個)正式更改。從work推送,並單獨離開test,直到您再次需要這些本地更改。