linux – git:编辑文件导致^ M在使用git diff时出现
发布时间:2020-12-14 00:30:56 所属栏目:Linux 来源:网络整理
导读:我在本地git仓库中有几个源文件.这些文件是从远程git仓库中提取的.当我执行“$git status”时,我会看到以下内容: $git status# On branch masternothing to commit,working directory clean 但是,当我编辑任何源文件(使用vim或gedit)时,^ M总是被添加到我添
我在本地git仓库中有几个源文件.这些文件是从远程git仓库中提取的.当我执行“$git status”时,我会看到以下内容:
$git status # On branch master nothing to commit,working directory clean 但是,当我编辑任何源文件(使用vim或gedit)时,^ M总是被添加到我添加的行的末尾.换句话说,在我进行更改后,我看到以下内容: $git status # On branch 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: sourcefile1.c # no changes added to commit (use "git add" and/or "git commit -a") $git diff sourcefile1.c ... + This is a test line ^M ... 我不知道为什么会这样,但它似乎与我使用的编辑器无关,也不与git本身有关.我知道有一种方法可以强制git to ignore ^M,但我真的想知道出了什么问题,为什么要插入这些^ M,以及如何阻止这种情况发生. 我在Linux内核3.11.0上使用Ubuntu 我感谢任何帮助. 解决方法
我曾经遇到过这个问题,我能用“dos2unix”程序解决它.我认为FDinoff是正确的,因为vim使用dos行结尾,因为该文件最初具有dos格式.要将其更改回unix格式,请安装dos2unix(如果您还没有).对于Ubuntu,您可以通过以下方式执行此操作:
sudo apt-get install dos2unix 然后使用此命令转换您的文件格式,例如 dos2unix sourcefile1.c 在此之后,如果文件格式实际上是问题,则在添加新行时不应该看到^ M. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |