如何改变git状态显示修改后的文件最终没有提交的行为



我在一个只有windows的工作环境中工作,开发人员使用各种工具来编辑他们的文件。我们正在使用.git和atlassian堆栈来版本我们的代码。我几乎都喜欢。

我最近刚刚结束了一场漫长而艰难的斗争,以使我的头脑围绕git如何以及为什么解释行结尾以及core.autocrlf做什么。我们决定用core.autocrlf true,一切都很好。

我很想知道如何改变git status的这种行为:

  • 我有一个CRLF行结尾的文件。
  • 我将行尾改为LF

    $ git status
    On branch somebranch
    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:   Src/the_file_i_changed_to_LF.js
    
  • 然后…

    $ git commit -a
    warning: LF will be replaced by CRLF in Src/the_file_i_changed_to_LF.js.
    The file will have its original line endings in your working directory.
    On branch somebranch
    nothing to commit, working directory clean
    

到这个:

  • 我有一个CRLF行结尾的文件。
  • 我将行尾改为LF

    $ git status
    On branch somebranch
    nothing to commit, working directory clean
    
  • 这是有意义的,因为无论如何都不会提交任何内容。

这可能吗?

我相信可能的副本不包含我正在寻找的答案。我想强调的是,我确实(认为我)知道我的设置core.autocrlf true的作用,并希望保持这种方式。我感兴趣的是没有检测到git status的变化,无论如何都不会提交,或者理解为什么这是不可能的。

当您设置core.autocrlf true时,您的工作目录中的所有文件都将具有CRLF行结束符(尽管存储库中的实际行结束符较少)。对于大多数windows用户来说,这已经足够好了。

从你的问题,我明白你想有你的工作目录文件(=本地文件)与LF。所以,这里你应该使用core.autocrlf input。这将为您提供与存储库中相同的确切行结尾(但仍然会确保所有签入都使用LF)。

阅读更多关于真假的区别,在这个答案中输入

相关内容

  • 没有找到相关文章

最新更新