在git clone之后立即编辑神秘,git checkout无法解决

时间:2015-08-27 21:53:10

标签: git

当我在本地计算机上克隆特定存储库时,某个文件似乎每次都被标记为已更改。我不希望这个文件被更改,但我不能因为它而切换分支。

我从远程克隆存储库,然后立即进入文件夹并检查git status:

    Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

    modified:   www/applications/nexus/sources/Purchase/LicenseKey/MdFive.php

当我在文件上执行git diff时,这就是我得到的:

    diff --git a/www/applications/nexus/sources/Purchase/LicenseKey/MdFive.php b/www/applications/nexus/sources/Purchase/LicenseKey/MdFive.php
index 915cb4f..8553ac1 100644
--- a/www/applications/nexus/sources/Purchase/LicenseKey/MdFive.php
+++ b/www/applications/nexus/sources/Purchase/LicenseKey/MdFive.php
@@ -22,7 +22,7 @@ if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
 /**
  * License Key Model - MD5
  */
-class _MdFive extends \IPS\nexus\Purchase\LicenseKey
+class _Mdfive extends \IPS\nexus\Purchase\LicenseKey
 {      
        /**
         * Generates a License Key

基本上MdFive已经变成了Mdfive。

我试过:

git checkout www/applications/nexus/sources/Purchase/LicenseKey/MdFive.php

但是当我执行git status和/或git diff时,文件仍然以相同的变化显示。这是怎么回事?

我有一台配备Git版本2.3.2的Mac。在另一个使用Git 1.7.1的环境中,它不会发生。

1 个答案:

答案 0 :(得分:1)

git checkout www/applications/nexus/sources/Purchase/LicenseKey/MdFive.php 
git status 
  modified: www/applications/nexus/sources/Purchase/LicenseKey/Mdfive.php
git checkout www/applications/nexus/sources/Purchase/LicenseKey/Mdfive.php
git status
  modified: www/applications/nexus/sources/Purchase/LicenseKey/MdFive.php 
  

它继续在循环中这样做......

这意味着您有一个设置(或content filter driver),可在结帐时自动应用更改。

一个常见的是eol(行尾:lf与crlf)的变化,因为git config core.autocrlf设置为input而不是false。