2013-03-13 111 views
3

我在分支feature/branch1git status列出我在.gitignore文件上的兩個文件。當我嘗試籤至develop分支機構,Git會阻止我這個消息:Git問我提交忽略文件

error: Your local changes to the following files would be overwritten by checkout: 
    XXXXXXX.xcworkspace/xcuserdata/XXXX.xcuserdatad/UserInterfaceState.xcuserstate 
Please, commit your changes or stash them before you can switch branches. 
Aborting 

然後我嘗試雖然它們在.gitignore文件中列出添加這些文件,所以我得到這個消息:

The following paths are ignored by one of your .gitignore files: 
XXXXXXX.xcworkspace 
Use -f if you really want to add them. 
fatal: no files added 

爲什麼git要求我添加這些文件?是因爲它們在develop分支中不被忽略。處理這種情況的最佳選擇是什麼?提前Thanx。

回答

2

問題是,你有本地目錄中的文件,雖然它們沒有被git版本化。而git checkout試圖拉入這些版本化的文件。 Git是告訴你,這是嘗試覆蓋這些文件,但它們沒有版本,所以你有2種選擇:

  1. 從當地的回購協議中刪除文件,讓收銀臺設置 的文件。
  2. 將您的忽略文件添加到git 回購版中進行版本升級。 (git add -f <ignored files>

要查看所有在你的回購目錄中被忽略的文件,運行:

git status --ignored 

這將列出所有的或忽略的文件,從這裏你可以決定是否要移動,刪除或在運行git checkout <branch>之前對其進行版本管理。

在您簽出此分支後,您可能還想考慮從您試圖結帳的分支進入的忽略文件實際上不應該提交給git repo,您​​可以將該文件從回購中刪除,而無需刪除它們:

git rm --cached <files>