GIT 遺失 commit 後的恢復方法

Git 可透過 resetrevert 來恢復前一個版本,在 commit 沒有 push 之前的話我通常都會使用 reset 來進行,而這次因為操作不熟悉而造成還沒 push 的 commit 遺失了,這時候要怎麼恢復?

Git 會把所有的操作紀錄都保留下來

Git 所有的操作都是在原先的紀錄上做修改,而且所有的紀錄都會留存下來。換句話說,你不管進行任何一種操作,Git 都有辦法讓你進行回滾。

執行 git reflog 即可看到所有操作紀錄

git reflog
9688fed HEAD@{0}: reset: moving to 9688fed
9688fed HEAD@{1}: reset: moving to HEAD
9688fed HEAD@{2}: reset: moving to HEAD^1
912851c (origin/develop, develop) HEAD@{3}: reset: moving to HEAD^1

※你可以加上參數 --stat 顯示異動的檔案。可支援的參數很多,如果想要獲得其他資訊,可以讀一下官方文件。

恢復被刪除的 commit

使用 git reset --hard <commit-id|HEAD> 可以將分支重設為指定的 commit 或是 HEAD(預設為最近一次的 commit)

注意:如果當下有未儲存的異動要先處理掉,不然會消失。(建議先用 git stash 先暫存起來)

git reflog 找到你想恢復的 commit id 後,執行下列指令即可恢復:

git reset --hard 551c724
HEAD is now at 551c724 tmp

Reference: 找回Git中丢失的Commit – 简书

發表留言

Refused to apply style from ‘style.css’ because its MIME type (‘text/html’) is not a supported stylesheet MIME type, and strict MIME checking is enabled.

今天把 Laravel 專案放到新建的 server 跑,出現了這個錯誤:

Refused to apply style from ‘http://localhost:8080/assets/styles/style.css‘ because its MIME type (‘text/html’) is not a supported stylesheet MIME type, and strict MIME checking is enabled.

找了很久都沒有找到原因,同時伴隨著部分頁面會出現 404。

Stackoverflow 這篇講了很多,但實際上我遇到的倒沒有這麼複雜,而且也不是因為因為 lib 引起的問題,最後在這篇找到解答,原來我只是忘記設定 Apache 的 Allow Override

DocumentRoot /var/www/sitefolder/public
ServerName site.domain.com
<Directory /var/www/sitefolder/public>
    AllowOverride All # 加上這行就可以了
    Allow from all
    Options +Indexes
</Directory>

最後執行 sudo systemctl reload apache2 就正常了。

References

發表留言

讓 Visual Studio Code 在關閉工作區時保留未儲存的檔案

Visual Studio Code 在預設情況下,關閉工作區時如果有未儲存的檔案,就會詢問要不要儲存,而沒辦法暫存起來於下次開啟時載入(Sublime Text 預設是可以的)。

 

其實 Visual Studio Code 也支援,只是預設值為在關閉整個 Visual Studio Code 才會有用,如果要支援關閉工作區的話,將 files.hotExit 這個設定值修改為 onExitAndWindowClose 即可。

 

Reference: vscode settings – How to keep unsaved file into vs code workspace? – Stack Overflow

發表留言

[PHP] 提升 json_encode() 資料可讀性

PHP 可藉由 json_encode()json_decode() 來編碼與解碼 JSON 格式的資料,在一般情況下不需要特別給予任何參數,但如果將 JSON 格式資料直接儲存的話,預設是儲存一行文,在不靠任何工具的前提下僅以肉眼辨識會顯得有點吃力。

$data = [
    '5b8e2e456106f8.12710761' => [
        'id' => '5b8e2e456106f8.12710761',
        'description' => '',
        'options' => [],
        'size' => 1243916,
        'create_at' => '2018-09-04 15:04:02'
    ]
];
echo json_encode($data);

 

輸出如下:

{"5b8e2e456106f8.12710761":{"id":"5b8e2e456106f8.12710761","description":"","options":[],"size":1243916,"create_at":"2018-09-04 15:04:02"}}

 

如果想要提升 JSON 格式資料的可讀性,只需要將 json_encode() 的第二個參數設為 JSON_PRETTY_PRINT 即可。

echo json_encode($data, JSON_PRETTY_PRINT);

 

輸出:

{
    "5b8e2e456106f8.12710761": {
        "id": "5b8e2e456106f8.12710761",
        "description": "",
        "options": [],
        "size": 1243916,
        "create_at": "2018-09-04 15:04:02"
    }
}

 

PHP 5.6.6 以上可選擇的參數共有 11 個,詳細說明可見 PHP 官網 

 

 

 
 
發表留言

HTTPS 網頁出現「blocked mixed content in browser」

當瀏覽器連線到一個 HTTPS 網站,但是瀏覽器網址旁邊出現了不安全的警告訊息,或是有部分內容被隱藏,可能是因為頁面裡面引用了未加密的 HTTP 外部資源,例如:

  1. 腳本(<script> 標籤)
  2. 樣式表(<link> 標籤)
  3. 圖片(<img><figure> 標籤)

Read more “HTTPS 網頁出現「blocked mixed content in browser」”

發表留言