2015-09-03 16 views
7

Sadece windows işletim ortamında, geliştiricilerin dosyalarını düzenlemek için her türlü aracı kullanarak çalışıyorum. Kodumuzun sürümüne atlassian stack ile birlikte .git kullanıyoruz. Neredeyse hepsini severim.Sonunda işlenmemiş olan değiştirilmiş dosyaları gösteren git durumunun davranışı nasıl değiştirilir?

Sadece son zamanlarda nasıl ve neden git satır sonları yorumlar ve neyi core.autocrlf yapar kafamı sarmak için uzun ve zor bir mücadele mücadele bitirdim. core.autocrlf true'u kullanmaya karar verdik ve hepsi neredeyse iyi. CRLF satır sonları

  • Bir dosya var: Ben İSTERDİM

    git status bu davranışı değiştirmek için bilmek.

  • Ben 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 
    
  • satır sonları değiştirmek Ama sonra ...

    $ 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 
    

kimse bu için:

  • Ben CRLF bir dosya var satır sonları.
  • hiçbir şey zaten taahhüt alacak beri mantıklı LF

    $ git status 
    On branch somebranch 
    nothing to commit, working directory clean 
    
  • satır sonları değiştirin.

Bu mümkün mü?

Muhtemel yinelenen aradığım cevabı tutmuyor. Yaptığımın (bence), ayarımın core.autocrlf true bunu nasıl yaptığını bilmek istediğini vurgulamak isterim. İlgilendiğim şey, git status numaralı sayfada, hiçbir şekilde taahhüt edilmeyecek ya da bunun neden mümkün olmadığını anlamayacak değişiklikler tespit edilmemesidir.

cevap

1

core.autocrlf true'u ayarladığınızda, çalışma dizininizdeki tüm dosyalar CRLF satır sonu (havuzdaki son satırın daha azına bakacak şekilde) olacaktır. Çoğu windows kullanıcıları için bu yeterince iyidir.

Sorunuzdan, çalışma dizini dosyalarınızın (= yerel dosya) LF ile olmasını istediğinizi anlıyorum. Yani, burada core.autocrlf input kullanıyor olmalısınız. Bu size, depodaki son satırı (ancak yine de tüm check-in'lerin LF ile yapıldığından emin olacaktır) verecektir.

Bu answer numaralı telefondaki true, false, input arasındaki farklar hakkında daha fazla bilgi edinin.