Category: git

今天遇到一個問題,想從 Git 版控找出圖檔何時被改壞。圖檔不像程式碼能用 git blame 直接找出哪一行何時被誰修改,但至少可以知道檔案在何時被誰改過,再從 Commit 調閱當時的版本加以比對。這個需求肯定有方便的 GUI 工具可以做到,但我想練習用指令完成。 假設 Git 版控有四次 Co...

Git 工具內建更新功能,執行 git update-git-for-windows 指令即可自動下載更新。(參考:更新本機 Git 到最新版 by Poy) 不過在受管控網路環境,簡單到靠北的下載動作也會因 SSL 憑證問題卡關,我已見怪不怪: VS2017 Git SSL 憑證無效問題 npm...

同事遇到一個 Git 錯誤,印象裡我有遇過,原本信心滿滿準備找出 KB 文章秒殺它,卻發現上回沒寫筆記。幸好還記得原因跟解法,補上筆記。 錯誤會發生 Cmder 下 Git 指令或使用軟體執行 Git 版控動作時,訊息如下: fatal: Unable to create 'D:/git-sourc...

之前寫過小工具將 git diff 程式差異報告轉成網頁好讀版,讓版本控管流程更符合人性,但挑戰總是會接踵而來。同事通報,網頁好讀版在處理某個 Commit 差異報告時爆炸了。未看先猜檔案過大,果然,git diff 輸出檔高達 77MB!! 程式碼是純文字,77MB 都可以寫出賈維斯 Jarvis...

這是我自己常遇到的問題 - 先寫了專案雛型,用 git init 就地建立 Git Repository,在第一次 Commit 放入雛型版本,之後陸續修改加入新的 Commit。 專案第一次上線用 git diff 產出 Compare List,卻發現我無法列舉所有專案檔案。原因是產生 git ...

同事出了一題 Git 隨堂測驗:有 Git 歷程如下,feature 與 master 分支的合併位置有誤(下圖藍紫線交會處,Commit b9933b90),想拆掉重做,請問單兵如何處置? 第一次處理正式環境的取消合併,加上實際案例還涉及 pull、rebase,狀況又再複雜一些,讓我有點手忙腳...

同事遇到的茶包。 git diff 時某文字檔被當成二進位檔案無法顯示差異,後來發現是 Unicode 編碼(UTF-16 LE with BOM/UCS-2 LE with BOM)造成,用以下範例重現: type a.txt 可檢視文字內容,但 git diff 比對時卻出現 "Bi...

前陣子分享將 Git diff 文件轉成網頁版程式異動對照表(Compare List)的做法,上路沒多久便觸礁。原因是一次新增大量檔案(例如:網站新增內容,包含大量 HTML、CSS、JS 檔全文)的 diff 檔可能超過 10MB,轉換產生的 HTML DOM 過於龐大讓瀏覽器很卡。Chrome...

前幾天提到開源專案 - Gitea 不僅跨平台、安裝設定超簡單(一個 exe 檔就搞定,還內建設定介面),號稱「輕量級」功能卻不陽春,不愧是架設 Git 私服的第一品牌。但對我而言有一點美中不足,Gitea 用 Golang 開發,用不順手想自己動手修改,我連專案怎麼開啟都不知道。 大部分的人都下...

昨天聊到在 Windows 架 Git 私服,留言區大家一面倒狂推 Gitea,力道之強,讓我覺得不試試看會終生遺憾。改變計劃,決定先把矮黑猩猩 (Bonobo Git Server) 放一旁,先來試試 Gitea。 我向來偏好輕巧簡單的解決方案,GitLab 功能強大但太笨重,相較之下,Gitea...

Git 是分散式版控,在任何資料夾下個 git init 指令就能開始管理版本,不管是 Side-Project、小程式,企劃案、設計草稿、專題作業還是碩士論文,Git 就能幫你保留版本回到從前,不用擔心改壞沒法重來。不過,只存在自己電腦風險太高,要是硬碟壞了心血結晶便付之東流,將資料定期推送到伺服...

用 Visual Studio 做 Git Rebase、Merge,操作到一半個人電腦忽因不明原因斷電(不是重開機,是電源自己關閉,疑似硬體問題格外讓人發毛,但會是另一個故事),重開機進入系統,除登入 Windows 時間稍久,其他看來還好。 等重新打開 Visual Studio 才發現不妙,斷...

為了升級 ASP.NET Core 5.0,我把 Visual Studio 2019 升到 16.8,發現 Git 介面做了大幅革新,新介面更好用,但要花點時間熟悉。 完整介紹可以看 Visual Studio PM Patrik 的部落格文章 - Announcing the Release o...

前幾天介紹了將 git diff 差異報告轉成 HTML 的簡便做法,讀者 LinnieKao 留言問到 git diff 顯示選項的問題,這裡補充說明。 diff2html 產生的左右對照比較表是最不花腦力最容易理解的形式,任何人都能輕易指出差異所在(看不看得懂程式在寫什麼是另一回事),但缺點是資...

程式異動對照表 (Compare List) 是上線流程必備文件之一,Git 內建 git diff 指令,能整理出鉅細靡遺的異動記錄,完整度之高,甚至能 Email 給其他開發者跑 git apply 同步原始碼版本,不管是複核、稽查或存證需求,git diff 報告的有效性無庸置疑。不過,純文字...

再談上線合併的分支策略一文提到「合併前先 Rebase 能做出乾淨漂亮的線形」(如下圖之上下對照),但比較費事,有時需重複排除修改衝突,這篇文章就來實證。 照慣例,用一段 DOS 批次檔備妥實驗環境: rem 請先建好實驗資料夾,並修改以下變數 set lab_folder=D:\GitTest ...