2015-09-03 62 views
7

我正在使用各種工具編輯文件的開發人員在僅限於Windows的工作環境中工作。我們使用.git以及atlassian堆棧來版本化我們的代碼。我幾乎喜歡它。如何更改顯示最終未提交的修改後的文件的git status的行爲?

我剛剛完成了一場漫長而艱苦的鬥爭,圍繞我的腦袋圍繞如何以及爲什麼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的變化,這將不會被承諾,要麼理解爲什麼這是不可能的。

回答

1

當您設置core.autocrlf true工作目錄中的所有文件將有CRLF行結束(關於在存儲庫中以實際行結束的更少)。對於大多數Windows用戶來說,這足夠好。

從你的問題我明白你想要你的工作目錄文件(=本地文件)LF。所以,在這裏你應該使用core.autocrlf input。這會給你確切的行結束在存儲庫中(但仍然會確保所有的登記都是用LF進行的)。

瞭解更多關於這個answer的真,假,輸入的區別。

相關問題