2017-04-11 39 views
0

當使用Git的switch分支時,我的項目目錄中的文件不反映我切換到的分支。假設我正在一個名爲「feat/some-awesome-feature」的分支上工作,並且我創建了2個新文件並在該分支中修改了一個。雖然仍在該分支中,但我在目錄/編輯器中看到了這些新文件和一個修改。我的問題是,當我切換到另一個分支(即主)時,我仍然看到這2個文件和其他文件中的修改。問題:是否可以讓我的目錄反映我目前所在分支的文件結構?順便說一下,我使用SublimeText3與SFTP債券插件,我用它來連接到我的流浪者。如何讓文件結構反映當前分支

+0

http://stackoverflow.com/questions/40324367 – jthill

回答

2

分支只是提交的名稱。

從您的描述中,您創建了一些文件並修改了其他文件,然後在不提交更改的情況下切換分支。它們仍然存在於你的工作樹中。切換分支(檢出不同的提交)不會影響它們,因爲它們不在任何分支中。發生這種情況是因爲它們不是任何提交的一部分。

您必須將新文件和更新的文件添加到資料庫,然後才能讓他們屬於一個分支承諾:

$ git add . 
$ git commit -m "created some new files" 

然後,當你檢出不同的分支,工作樹會反映該提交創建時項目的狀態。

有疑問時,運行git status看看是否有未提交工作樹改變。

+0

的可能重複囉。我確實承諾... Git狀態表示無事可做...... – Marc

+0

在這種情況下,您應該改寫您的問題。你過分關注Git並獲得關於Git的答案。顯然罪魁禍首是SFTP插件,但你只是提到它只是一個小細節。我在你的問題中沒有看到你提到沒有更新的目錄是遠程的。 – axiac

0

有兩種方法。

一個是將更改提交到feat/some-awesome-feature,然後檢出其他分支。

或者你混帳藏匿(GIT加$文件;混帳藏匿)的更改,然後簽出其他的分支。

0

通常你說你想要的行爲是git的行爲。一對夫婦的事情可能會發生...

的新文件:聽起來也許他們還沒有跟蹤(git add)。如果一個文件未被跟蹤,那麼git在檢出另一個分支時不會打擾它。

但它聽起來像你也有更改現有的文件。如果這些沒有提交,那麼git應該拒絕嘗試更改分支(警告對這樣的文件的更改將被覆蓋)。

那該怎麼辦?

那麼,如果你準備好addcommit你對分支的修改,你可以這樣做,然後結賬應該按預期行事。

如果你是而不是準備提交它們,然後使用git stash。這將它們置於臨時提交中,您可以稍後使用git stash pop進行檢索。如果你打算開始使用窗口,更好的閱讀文檔:https://git-scm.com/docs/git-stash

1

這裏的問題不在於目錄不能切換,而是Sublime SFTP沒有正確更新文件。

第一個:檢查首選項 - >軟件包設置 - > SFTP - >設置 - 默認設置中的「monitoring_frequency」設置,並確保設置爲足夠低以不斷更新。

如果你正在使用整個目錄副本: 最快的方式(但變得快速)轉到項目 - >刷新文件夾。這將使用git在遠程進行的更改來更新整個本地目錄。

相關問題