2020年3月6日 星期五

利用 GitHub 的 Raw 按鈕解決跳行字元變成 ^M 的問題

這幾天在學習 GitHub 的用法, 發現原來使用 GitHub 並不一定要在本地端安裝 Git, 然後用一堆命令列指令來同步近端與遠端的檔案版本; 對於個人使用者來說可以完全線上作業, 以 GitHub 儲存庫上所儲存的程式為原版, 以本地檔案為開發版, 確認功能完整後再線上提交, 由 GitHub 控管檔案版本. 今天我就用這方式將以前的測試程式碼 (jQuery, ExtJS, EasyUI, Java, Javascript .... blablabla) 全部上傳到 GitHub 以備將來參考之用, 網址為 :

https://github.com/tony1966/test

不過在上傳過程中發現 /lib 底下有 3 個 php 檔案格式亂掉 :

jqueryui.php
jqueryui_old.php
telnet.php

這三個檔案的內容全部黏在一起, 似乎是跳行字元出了問題, 因為在 GitHub 中瀏覽這些檔案時發現在應該跳行之處出現 ^M 字符 :





原因可能是之前的 PHP 主機是 UNIX/LINUX, 上傳檔案時不知甚麼原因沒有將 Windows 的跳行字元 \r\n 轉成 \n (UNIX/LINUX)\r (Mac) 所致. 我參考了下列文章中的建議進入 Git Bash, 使用其 Linux shell 指令去轉換都沒效果 : 
^M 如何消除

cat telnet.php | tr -d '\r'  > telnet_new.php
tr -d '\r' < telnet.php > telnet_new.php
find ./ -type f print0 | xargs -0 sed -i 's/$/^M/'

照某些人建議用 vi 開啟檔案去改也無效果.

後來我發現按 GitHub 上的 "Raw" 按鈕以原始格式瀏覽檔案居然就正常跳行了 :





只要複製 Raw 顯示的網頁內容貼到記事本或 EditPlus 中另存新檔即解決 ^M 跳行問題了, 沒想到忙了一圈竟然是白忙, 用 GitHub 的 Raw 按鈕就輕鬆搞定跳行字元問題.

沒有留言 :