加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读