2014-02-10 118 views
0

我使用git來管理我的PHP項目,我有3個分支機構主,分段,發展。無法簽出分支由於未跟蹤的文件

所以我把我的新功能合併到master分支,但問題是git拒絕切換回開發分支。

我的.gitignore內容:

config_enviroment.php 
.htaccess 
.idea 
a013/app/tmp/* 
smarty/smarty_templates_c/* 
config_enviroment.php 

所以,現在我在master 當我鍵入git的狀態:

nothing to commit, working directory clean 

到目前爲止似乎是確定。但現在我試圖找回在開發分支工作

git checkout development 
error: The following untracked working tree giles would be overwritten by checkout: 
    a013/app/Model/admin.php 
    a013/app/Model/articles.php 
    .... 
Please move or remove them before you can swich branches. 
Aborting 

問:爲什麼混帳拒絕改用分支,即使這些文件跟蹤和我的工作目錄是乾淨的?

回答

0

工作目錄僅在沒有文件需要提交的意義上是乾淨的:一切都提交或忽略。但Git仍然可以通過拒絕執行將覆蓋未跟蹤文件的檢出來保護您免受數據丟失,而不管它們的狀態爲.gitignore

+0

我試圖刪除刪除gitignore文件,這將意味着'混帳status'應顯示所有未跟蹤文件,但沒有文件,這些文件的git抱怨關於甚至沒有gitignore列出,如果我正確理解它應該已經被跟蹤.. – insanebits

+0

@insanebits'git status'不一定顯示所有文件,但它應該顯示這些文件所在的目錄。 –

0

因爲您確實在a013/app/Model/admin.phpa013/app/Model/articles.php中做了一些更改,這些更改將被您嘗試移動到(開發)的分支所做的更改覆蓋。

您擁有的各種選擇:與git stash

  • 藏匿的更改,並通過使用git stash pop後獲得這些變化。請注意,你我有收斂。
  • 提交更改
  • 放棄更改與git reset HEAD --hardgit checkout a013/app/Model/admin.php a013/app/Model/articles.php
+0

但爲什麼git status顯示修改後的文件? – insanebits