Git-交换分支(windows)和;未提交的更改

Git-交换分支(windows)和;未提交的更改,windows,git,dvcs,Windows,Git,Dvcs,我很难理解一些git/DCV概念。发生的事情如下: 我创建了一个git项目,并从SVN回购中导入了它 我做了一些承诺 我想做些实验,所以我创建了一个名为“常量更新”的分支 我切换到常量更新分支,移动了一些文件,删除了其他文件,并添加了更多 我致力于这一部门 现在我正试图使用git checkout master切换到我的主分支 我得到了这个错误:错误:您对'src/groovy/Constants.groovy'进行了本地更改;无法切换分支。 我对DCV的理解是,只要我提交文件,我就可以随意切换

我很难理解一些git/DCV概念。发生的事情如下:

  • 我创建了一个git项目,并从SVN回购中导入了它
  • 我做了一些承诺
  • 我想做些实验,所以我创建了一个名为“常量更新”的分支
  • 我切换到常量更新分支,移动了一些文件,删除了其他文件,并添加了更多
  • 我致力于这一部门
  • 现在我正试图使用git checkout master切换到我的主分支
  • 我得到了这个错误:错误:您对'src/groovy/Constants.groovy'进行了本地更改;无法切换分支。
  • 我对DCV的理解是,只要我提交文件,我就可以随意切换分支,即使某些分支的文件比其他分支的多或少。我尝试过使用
    gitcommit-a
    提交并切换到主分支,但我遇到了相同的错误

    作为旁注,当我提交时,git警告我LF将被CRLF替换,并警告我一些尾随空格;提交后,我执行一个
    git状态
    ,一堆文件总是显示为
    #modified…


    这是与git/windows相关,还是我没有正确理解应该发生什么?我只想切换到我的主分支,而不会丢失另一个分支中的更改。

    在当前分支中有未保存的更改时,查找git隐藏以更改分支。

    您认为这应该如何工作是正确的

    然而,听起来git在行尾方面有问题,它认为所有的文件都被修改了,即使它们并没有被修改。我在Windows上不使用git,但我打算建议使用“core.autocrlf”选项来实现crlf处理。但是,下面的博客条目表明这可能不是一个好主意:

    我解决了这个问题(在
    .git/hooks/pre-commit
    中用
    #
    注释这些行):


    只需在驻留在用户目录中的.gitconfig文件中使用以下选项

    [核心] autocrlf=true


    它将解决这个问题。

    我已经对git stash发了火,但我正在尝试使用默认工作流(改用分支)。
    #       if (/\s$/) {
    #       bad_line("trailing whitespace", $_);
    #       }