2008-11-03 107 views
8

我很難理解一些git/DCVS概念。事情是這樣的:Git - 切換分支(窗口)&uncommited變化

  1. 我創建了一個Git項目,並從SVN回購
  2. 進口它,我做了一些提交
  3. 我想嘗試的東西,所以我創建了一個分支叫常數更新
  4. 我切換到常數更新分支,移動一些文件,刪除他人,增加了更多的
  5. 我致力於這一分支
  6. 現在我試圖切換到我的主分支使用git checkout master
  7. 我得到這個錯誤:錯誤:您有本地更改'src/groovy/Constants.groovy';不能切換分支。

我DCVS的理解是,我可以隨意切換分支,即使某些分支比別人更多或更少的文件,只要我承諾我的文件。我試過git commit -a並切換到主分支,但我有同樣的錯誤。作爲一個便箋,當我提交git時,我警告說LF將被CRLF取代,並警告我一些尾隨的空白;在我承諾之後,我做了一個git status和一堆文件總是顯示爲#modified ...

這是與git/windows,或者我不明白它應該發生什麼?我只想切換到我的主分支而不會在其他分支中丟失我的更改

回答

4

我解決了這個問題hacking my pre-commit hook(註釋這些行.git/hooks/pre-commit#):

#  if (/\s$/) { 
#  bad_line("trailing whitespace", $_); 
#  } 
4

查找git-stash用於在當前分支中存在未保存的更改時更改分支。

+0

我已經紅了有關git存儲,但我想使用默認工作流(使用分支代替)。 – 2008-11-03 10:37:04

2

只需要使用下面的選項.gitconfig文件駐留在用戶目錄中。

[核心] autocrlf =真

而且它會解決這個問題。