1

我正在本地处理项目的主干,需要签出远程分支。我的工作副本是完全最新的,我运行

git checkout -b RC1 origin/RC1

之后我跑

git status

它告诉我我有大约 30 个经过修改和未标记的文件。我打开一个可视化界面来查看文件中的更改,它们是 100% 相同的。当我跑

git diff

我得到:

该文件将在您的工作目录中具有其原始行结尾。警告:CRLF 将被 src/private/library/arialunicid0-chinese->traditional.php 中的 LF 替换。

我的问题是为什么所有这些文件都被认为被修改了?我的分支不应该是干净的,如果我刚刚检查它就没有任何变化吗?

4

1 回答 1

2

引用git checkout手册页

git checkout <branch>
保留对工作树中文件的本地修改,以便它们可以提交到 <branch>。

所以不,结帐后工作副本并不总是干净的;您的文件可能在结帐之前已被修改,或者您的 autocrlf 设置为您搞砸了。在 Git 中关闭 EOL 转换通常不会那么令人头疼,而是确保所有开发人员都使用可以处理所有 EOL 的编辑器——并就一种行尾达成一致(例如 unix 样式,仅限 LF)。

于 2013-02-06T19:43:15.033 回答