第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

行結(jié)束轉(zhuǎn)換是如何與git核心一起工作的。

行結(jié)束轉(zhuǎn)換是如何與git核心一起工作的。

Git
蝴蝶不菲 2019-07-09 16:46:40
行結(jié)束轉(zhuǎn)換是如何與git核心一起工作的。我讀過很多關(guān)于堆棧溢出的不同問題和答案吉特關(guān)于核心設(shè)置有效。從我所讀到的,這就是我的理解:Unix和MacOSX(前置OSX使用CR)客戶端使用LF行尾。Windows客戶端使用CRLF行尾。當(dāng)core.autocrlf在客戶端上設(shè)置為true時,git存儲庫總是以LF行結(jié)束格式存儲文件,客戶端上的文件中的行尾在簽出/提交時來回轉(zhuǎn)換,這些客戶端使用非LF行結(jié)束,無論客戶端上的行尾文件采用何種格式(這與Tim Clem的定義不一致-請參見下面的更新)。下面是一個矩陣,它試圖為core.autocrlf的“輸入”和“false”設(shè)置記錄相同的內(nèi)容,其中我不確定行結(jié)束轉(zhuǎn)換行為。我的問題是:問號應(yīng)該是什么?這個矩陣對“非問號”是正確的嗎?我將更新答案中的問號,因為似乎已經(jīng)形成了共識。                       core.autocrlf value             true            input              false ---------------------------------------------------------- commit   |  convert           ?                  ? new      |  to LF      (convert to LF?)   (no conversion?) commit   |  convert to        ?                 no  existing |  LF         (convert to LF?)     conversion checkout |  convert to        ?                 no existing |  CRLF       (no conversion?)     conversion我并不是真的在尋找各種設(shè)置的正反兩方面的意見。我只是在尋找數(shù)據(jù),它清楚地說明了如何期望git對這三個設(shè)置中的每一個進(jìn)行操作。--閱讀后蒂姆·克萊姆的文章在注釋中由JJD鏈接,我修改了上表中“未知”值中的一些值,并更改了“簽出現(xiàn)有的true以轉(zhuǎn)換為CRLF,而不是轉(zhuǎn)換為Client”。以下是他給出的定義,這些定義比我在其他地方看到的任何東西都更清晰:core.autocrlf=false這是默認(rèn)情況,但大多數(shù)人都被鼓勵立即改變這種情況。使用false的結(jié)果是,Git永遠(yuǎn)不會處理文件中的行尾。你可以簽入的文件與LF或CRLF或CR或隨機(jī)混合的這三個和Git不在乎。這可能會使差異更難閱讀和合并更加困難。大多數(shù)在Unix/Linux環(huán)境中工作的人使用這個值是因為他們沒有CRLF問題,而且每當(dāng)文件被寫入對象數(shù)據(jù)庫或?qū)懭牍ぷ髂夸洉r,他們不需要Git做額外的工作。core.autocrlf=true這意味著Git將處理所有文本文件,并確保在將該文件寫入對象數(shù)據(jù)庫時用LF替換,并在寫入工作目錄時將所有LF轉(zhuǎn)換回CRLF。這是在Windows上推薦的設(shè)置,因為它確保您的存儲庫可以在其他平臺上使用,同時將CRLF保留在您的工作目錄中。core.autocrlf=輸入這意味著Git將處理所有文本文件,并確保在將該文件寫入對象數(shù)據(jù)庫時用LF替換CRLF。然而,它不會適得其反。當(dāng)您從對象數(shù)據(jù)庫中讀取文件并將它們寫入工作目錄時,它們?nèi)匀挥蠰FS來表示行尾。此設(shè)置通常用于Unix/Linux/OSX,以防止CRLFs被寫入存儲庫。這樣做的想法是,如果您從Web瀏覽器粘貼代碼,并意外地將CRLF放入您的文件中,則Git將確保在寫入對象數(shù)據(jù)庫時將它們替換為LFS。Tim的文章很棒,我唯一能想到的就是他認(rèn)為存儲庫是LF格式的,這不一定是正確的,特別是對于只適用于Windows的項目。將Tim的文章與JmLane迄今投票最多的答案進(jìn)行比較,顯示出對真實和輸入設(shè)置的完美一致,以及對錯誤設(shè)置的不同意見。
查看完整描述

3 回答

?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗 獲得超3個贊

最好的解釋是core.autocrlf作品可在基屬性手冊頁,在text屬性部分

這就是為什么core.autocrlf目前看來是有效的(或者至少從我所知的1.7.2版本開始):

  • core.autocrlf = true

    1. 從存儲庫簽出的文本文件

      LF

      字符歸一化為

      CRLF

      在工作樹中;包含

      CRLF

      在存儲庫中不會被觸摸
    2. 只有

      LF

      存儲庫中的字符,將從

      CRLF

      LF

      當(dāng)提交回存儲庫時。包含

      CRLF

      在存儲庫中將不受影響地提交。
  • core.autocrlf = input

    1. 從存儲庫簽出的文本文件將在工作樹中保留原始的EOL字符。
    2. 在工作樹中的文本文件

      CRLF

      字符歸一化為

      LF

      當(dāng)提交回存儲庫時。
  • core.autocrlf = false

    1. core.eol

      在工作樹的文本文件中口述EOL字符。
    2. core.eol = native

      默認(rèn)情況下,這意味著WindowsEOLs是

      CRLF

      和*nix EOLs是

      LF

      在工作的樹上。
    3. 儲存庫

      gitattributes

      設(shè)置確定提交到存儲庫的EOL字符規(guī)范化(默認(rèn)為規(guī)范化為

      LF

      )。

我只是最近才研究過這個問題,我也發(fā)現(xiàn)情況非常復(fù)雜。這個core.eol設(shè)置確實有助于闡明GIT如何處理EOL字符。


查看完整回答
反對 回復(fù) 2019-07-09
?
桃花長相依

TA貢獻(xiàn)1860條經(jīng)驗 獲得超8個贊

混合平臺項目中的EOLs問題使我的生活很長一段時間都很悲慘。當(dāng)已經(jīng)存在具有不同和混合EOLs的文件時,通常會出現(xiàn)這些問題。已經(jīng)在回購中。這意味著:

  1. 回購程序可能有不同的文件和不同的EOLs。
  2. 回購中的某些文件可能具有混合的EOL,例如

    CRLF

    LF

    在同一個文件里。

這不是問題所在,但它確實發(fā)生了。

我在Windows上對各種模式及其組合進(jìn)行了一些轉(zhuǎn)換測試。
下面是我在一個稍微修改過的表格中得到的信息:

                 | Resulting conversion when       | Resulting conversion when 
                 | committing files with various   | checking out FROM repo - 
                 | EOLs INTO repo and              | with mixed files in it and
                 |  core.autocrlf value:           | core.autocrlf value:           
--------------------------------------------------------------------------------
File             | true       | input      | false | true       | input | false
--------------------------------------------------------------------------------
Windows-CRLF     | CRLF -> LF | CRLF -> LF | as-is | as-is      | as-is | as-is
Unix -LF         | as-is      | as-is      | as-is | LF -> CRLF | as-is | as-is
Mac  -CR         | as-is      | as-is      | as-is | as-is      | as-is | as-is
Mixed-CRLF+LF    | as-is      | as-is      | as-is | as-is      | as-is | as-is
Mixed-CRLF+LF+CR | as-is      | as-is      | as-is | as-is      | as-is | as-is

如您所見,在提交時有2種情況發(fā)生轉(zhuǎn)換(左3列)。在其他情況下,文件是按原樣提交的。

在簽出時(3列右列),只有1種情況下發(fā)生轉(zhuǎn)換:

  1. core.autocrlf

    true 

  2. 回購中的文件具有

    LF

    EOL。

對我來說最令人驚訝的是,我懷疑,造成許多EOL問題的原因是沒有混合EOL的配置。CRLF+LF恢復(fù)正常。

還請注意,“舊”MacEOLsCR只是從來沒有改變過。
這意味著,如果寫得不好的EOL轉(zhuǎn)換腳本試圖將混合結(jié)束文件轉(zhuǎn)換為CRLFS+LFS,只是通過轉(zhuǎn)換LFS到CRLF,則它將以混合模式將該文件保留為“孤獨(dú)”。CR在任何地方CRLF轉(zhuǎn)換成CRCRLF.
這樣,git就不會轉(zhuǎn)換任何東西,即使是在true模式,而EOL破壞仍在繼續(xù)。這實際上發(fā)生在我身上,并且嚴(yán)重地破壞了我的文件,因為一些編輯器和編譯器(例如VS 2010)不喜歡MacEOLs。

我想真正解決這些問題的唯一方法就是偶爾通過簽出inputfalse模式,運(yùn)行適當(dāng)?shù)囊?guī)范化并重新提交已更改的文件(如果有的話)。在Windows上,可能繼續(xù)使用core.autocrlf true.


查看完整回答
反對 回復(fù) 2019-07-09
  • 3 回答
  • 0 關(guān)注
  • 524 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號