我很难理解一些git / DCVS概念。这是发生的事情:

  1. 我创建了一个git项目,并从SVN repo
  2. 导入它
  3. 我做了一些提交
  4. 我想尝试一些东西,所以我创建了一个名为 constants-update
  5. 的分支
  6. 我切换到常量更新分支,移动了一些文件,删除了其他文件并添加了更多
  7. 我致力于这个分支
  8. 现在我正在尝试使用 git checkout master
  9. 切换到我的主分支
  10. 我收到此错误:错误:您对'src / groovy / Constants.groovy'进行了本地更改;无法切换分支。
  11. 我对DCVS的理解是,我可以随意切换分支,即使某个分支的文件比其他分支更多或更少,只要我提交我的文件。我尝试使用 git commit -a 并切换到master分支,但是我有同样的错误。

    作为旁注,当我提交git时警告我,LF将被CRLF取代,并警告我一些尾随的空格也是如此;在我提交后,我执行 git status ,并且一堆文件总是显示为 #modified ...

    这是与git / windows 有关,还是我不明白它应该发生什么?我只想在另一个分支中切换到我的主分支而不会丢失我的更改

有帮助吗?

解决方案 3

我解决了这个问题黑客攻击我的预提交挂钩(使用 .git / hooks / pre-commit 中注释这些行):

#       if (/\s$/) {
#       bad_line("trailing whitespace", 

我解决了这个问题黑客攻击我的预提交挂钩(使用 .git / hooks / pre-commit 中注释这些行):

<*>); # }

其他提示

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

你认为这应该如何运作是正确的。

然而,听起来git在行结尾时遇到问题,并且它认为所有文件都被修改,即使它们不是。我不在Windows上使用git,但我打算建议使用“core.autocrlf”。使crlf处理工作的选项。但是,以下博客条目表明这可能不是一个好主意: http://weierophinney.net/matthew/archives/191-git-svn-Tip-dont-use-core.autocrlf.html

只需在.gitconfig文件中使用以下选项,该文件位于用户目录中。

[芯] autocrlf = true

它将解决问题。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top